2016-04-15 24 views
1

角度2アプリのさまざまなコンポーネント間のデータ共有に関する質問。現在のところ、私のアプリの構造はチュートリアルのthis oneの構造に似ていて、Angular bootstrapはAppComponentであり、そこから複数のコンポーネントがルーティングされています。二つの質問:この場合角度2のデータ共有アプローチ

  1. AppComponent他の2つの成分(チュートリアルのように、すなわち、ダッシュボードと英雄)の「親」ですか?もしそうなら、変数としてすべてのデータをAppComponentの内部に格納し、必要に応じてデータを子に渡すのは良い考えですか?

  2. または、httpですべてのデータを取得し、サービス内にキャッシュする方が良いですか?どうして?

ありがとうございます!

答えて

2

私の視点から見ると、データをサービスにキャッシュする方が、アプリケーションにとって透過的ですからです。さらに、非同期処理は隠されています。ここではサンプルです:データはサブコンポーネントに提供する準備ができているときに、他のアプローチに注意する必要があります

export class SharedService { 
    constructor(private http:Http) { 
    } 

    getData() { 
    if (this.cachedData) { 
     return Observable.of(this.cachedData); 
    } else { 
     return this.http.get(...) 
      .map(res => res.json()) 
      .do((data) => { 
       this.cachedData = data; 
      }); 
    } 
    } 
} 

ワンポイントです。

ただし、使用するケースによって異なります。

関連する問題