2016-04-15 82 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; 
      }); 
    } 
    } 
} 

的一点是,当数据准备好提供给子组件。

但这取决于您的使用情况。