rest - 使用一个 REST 调用的 Angular2 多个组件

标签 rest angular angular2-directives angular2-services

我是 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/

相关文章:

html - 如何访问Primeng表的style属性

angular - 检查元素是否在 Angular2 中动态标记了 attr/class

javascript - Angular 2多重倒计时管道

android - 如何从 JSONObject 中删除 nameValuePairs 键?

java - KeyCloak - 以编程方式创建领域/用户/组?

wcf - 如何处理/解析使用 WebClient 调用的 WCF Rest 的故障

javascript - 通过输入将数据获取到组件

php - 保护特定请求类型、restful API、Laravel

javascript - FormControl 的 setValue 实际上有多快?

angular - Angular 2 的代码覆盖率