2016-04-15 85 views
1

Angular 2應用程序中各個組件之間數據共享的問題。目前我的應用程序的結構類似於本教程中的this one,其中Angular引導AppComponent,並從那裏路由多個組件。兩個問題:Angular 2中的數據共享方法

  1. 在這種情況下,是在AppComponent其他2個部件(即儀表板和英雄如教程)的「父」?如果是這樣,將所有數據作爲變量存儲在AppComponent之內,然後根據需要將數據傳遞給它的子項是個好主意嗎?

  2. 或者,通過http獲取所有數據並將它們緩存在Service中會更好嗎?爲什麼?

謝謝!

回答

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; 
      }); 
    } 
    } 
} 

的一點是,當數據準備好提供給子組件。

但這取決於您的使用情況。