angular2是否可以与其他组件共享可观察数据?

时间:2016-08-17 21:17:50

标签: angular angular2-services angular2-observables

我有一个通过RESTful api为用户提供服务的服务。它使用Observable实现。

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

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

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

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

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

constructor(public user: User){}

在父级中定义用户之后,我有一个按钮,在子组件中触发console.log(user),它返回undefined

1 个答案:

答案 0 :(得分:0)

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

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