我是 Angular2 应用程序的一部分(我们使用 beta3),问题如下:
通常我们有一个组件使用一些服务,该服务使用一些 rest 调用并且组件显示数据。太好了。
然而,我们确实有一个包含超过 6 个组件的页面,所有组件都使用相同的 REST 调用...(后端返回所有组件的数据)并且为每个组件调用 6 次 REST 是没有意义的组件,如果我们做一些客户端缓存也会很奇怪。
有开箱即用的东西吗?或者处理这种情况的模式?
谢谢。
最佳答案
只需在共享服务中执行即可。如果您仅在 bootstrap(..., [OtherProviders, HTTP_PROVIDERS, MyService])
中添加它,每个组件将注入(inject)相同的实例。将数据存储在服务中,每个组件都可以访问它
export class MyComponent {
constructor(private dataService:MyService) {
dataService.getData().subscribe(data => { this.data = data; });
}
}
export class MyService {
getData() {
if(!this.data) {
return http.get(...).map(...).subscribe(data => { this.data = data;});
}
return this.data;
}
}
关于rest - 使用一个 REST 调用的 Angular2 多个组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35333701/