我有核心模块,其中有组件标题栏,如果管理员登录名称应该出现在头文位,那么我要求我需要设置该标题范围的属性 adminName ,但是我我有模态,它位于不同模块的另一个组件Home.module.ts。
我想要的是当用户点击登录时,该组件的管理员名称应该转到headbar组件,我不能使用@output属性,因为这些组件没有child = parent关系,我如何通知更改到另一个组件我尝试在构造函数中使用组件作为提供程序但是没有发生更改检测。enter code here
答案 0 :(得分:0)
https://angular.io/guide/component-interaction处的文档 有一个标题为“#34;父母和孩子通过服务进行沟通的部分" 这显示了使用rxjs主题。
这是很好的信息,并且如果需要通信的两个组件同时存在,则可以使用,例如,他们有一个父子关系,并且在发送消息之前都会被实例化。
这可能对你有用。但是,如果您最终需要具有相同信息的其他组件,并且它们不是父子关系的一部分,那么您可以使用BehaviorSubject替换服务中的Subject。 BehaviorSubject始终在订阅时返回最后一项。
请注意,您的服务需要是一个单例(从应用程序模块提供),以便所有组件都注入相同的服务实例。