【发布时间】:2016-10-20 15:28:27
【问题描述】:
我有 3 个组件,即 app.component、body.component、detail、component。 当我详细点击按钮时, 我想要 app.component 登录名等于 detailcomponet 登录名 我使用服务共享数据来通信两个组件,我可以将数据传递给服务,但 appcompont 无法生效。 应用和细节组件
服务和路由器和正文组件
【问题讨论】:
-
使用共享服务在不是直接父子或兄弟的组件之间共享数据。 angular.io/docs/ts/latest/cookbook/component-communication.html
-
我只是修改代码使用共享服务这种方法,我可以将数据传递给服务,console.log 确认它。但无法影响应用程序组件。麻烦你有时间看看。我在上面贴了两张图片。非常感谢你,应用程序构造函数:constructor(private psservice:Passservice){ psservice.passdata$.subscribe(shardata =>{ this.loginname=shardata; //this.loginname='haha "$ {shardata}" hello'; //console.log(shardata); });
-
如果将服务添加到每个组件,那么每个组件将获得不同的服务实例。要么将其添加到作为两者父组件的组件的提供者,要么添加到
@NgModule()的提供者,然后一个服务实例将与整个应用程序共享。 -
我使用应用程序模块提供商添加此服务而不是其他组件。效果很好,对我很有帮助,非常感谢。