我有一个通过RESTful api为用户提供服务的服务。它使用Observable实现。
我还有一个包含8个子组件的父组件。
我想知道是否以及如何在父组件中发出单个HTTP请求,以获取用户并在其子组件中共享它。
这是在父母中定义用户的调用:
this.userApi.getUser(id)
.subscribe(response => {this.user = response;},
error => error);
我已经将用户模型导入并注入到每个组件的构造函数()中,如下所示:
constructor(public user: User){}
在父级中定义用户之后,我有一个按钮,在子组件中触发console.log(user)
,它返回undefined
。
答案 0 :(得分:0)
如果您只想制作一个HTTP请求并共享用户数据,请创建服务,存储您的用户对象。它可用于模块中的每个组件(root和所有子组件)。
您也可以使用 ngRx 商店创意 - https://github.com/ngrx/store。此解决方案的优点是您可以在应用程序的每个片段中订阅用户存储。