【问题标题】:angular2 is it possible to share observable data with other components?angular2 是否可以与其他组件共享可观察数据?
【发布时间】:2016-08-17 21:17:49
【问题描述】:

我有一项通过 RESTful api 获取用户的服务。它使用Observable 实现。

我还有一个包含 8 个子组件的父组件。

我想知道是否以及如何在父组件中发出单个 HTTP 请求,以获取用户并在其子组件之间共享。

这是在父级中定义用户的调用:

this.userApi.getUser(id)
        .subscribe(response => {this.user = response;},
                    error => error);

我已经将用户模型导入并注入到每个组件的 constructor() 中,如下所示:

constructor(public user: User){}

一旦在父组件中定义了 user,我就有一个按钮在子组件中触发 console.log(user),它返回为 undefined

【问题讨论】:

  • 您使用的是 NG2 RC4 还是 RC5?
  • 发布你的 getUser() 实现

标签: angular angular2-services angular2-observables


【解决方案1】:

如果您只想发出一个 HTTP 请求并共享用户数据,请创建一个服务,它将存储您的用户对象。它可用于模块中的每个组件(根和所有子组件)。

您也可以使用 ngRx 商店创意 - https://github.com/ngrx/store。此解决方案的优点是您可以在应用程序的每个片段中订阅用户存储。

【讨论】:

    猜你喜欢
    • 2017-05-17
    • 2016-12-11
    • 2019-12-31
    • 2020-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多