我是Angular2应用程序的一部分(我们使用beta3),问题如下:
通常我们有一个组件使用一些使用一些休息调用的服务,组件显示数据.大.
但是我们确实有一个包含6个以上组件的页面,所有这些组件都使用相同的REST调用…(后端返回所有这些组件的数据),并且为每个组件调用6次REST是没有意义的,如果我们做一些客户端缓存会很奇怪.
是否有开箱即用的东西?还是一个处理这种情况的模式?
谢谢.
解决方法
只需在共享服务中执行此操作即可.如果只在bootstrap中添加它(…,[OtherProviders,HTTP_PROVIDERS,MyService]),每个组件将被注入相同的实例.将数据存储在服务中,每个组件都可以访问它
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; } }