在Angular中的组件之间创建通信通道

时间:2018-08-23 18:28:01

标签: angular typescript events ecmascript-6 rxjs

所以我有两个组件,分别是CompA和compA5,它们分别是3或4个级别,我想在这些组件之间创建一个通信通道。

可以说,我想从组件CompA发送事件到compA5以返回一些数据,等待它返回数据,然后采取一些措施。 是否可以创建服务或任何其他最佳实践来实现这种行为。

2 个答案:

答案 0 :(得分:1)

组件通信的最佳实践是创建一个共享服务,其中两个组件是同级的或彼此不相关的。

此共享服务将具有一个Subject / BehaviorSubject变量。由于这是一项共享服务,因此两个组件都将其作为依赖项注入。

现在,可以通过在其上调用Subject并将其希望另一个组件获取的数据传递给它来更改此BehaviorSubject / next的值。

subscribe / Subject的另一个组件将BehaviorSubject并自动获取数据。

这里是StackBlitz Link的简单演示。

答案 1 :(得分:0)

没有什么比原始Angular.io文档示例Parent and children communicate via a service更好了。