Angular 2组成部分:儿童与儿童之间的沟通

Ste*_*fan 8 angular2-components angular

我在Angular 2应用程序中有三个组件:C0,C1和C2.第一个(C0)表示一个html模板,具有多个子组件(ui元素).现在,如果有人点击C1(菜单)中的按钮,我该如何通知C2(日历)呢?

在此输入图像描述

我尝试了角度站点的组件通信页面中的一些示例.我最终得到了一种方法,我在C1处获取了一个EventEmitter,以通知父C0.然后使用setter通知C2.

这有效,但看起来非常凌乱,即使对于充满活动的手.如果我的应用程序最终可能有数百个事件,那么这个解决方案就无法解决.

有没有更好的方法来处理这种沟通?

Gün*_*uer 12

我认为,不应该将添加EventEmitterC1你所说的.
您可以通过添加模板变量来绑定到方法C2而不涉及C0,并C2使用它来引用它,如:

<c1 (customEvent)="c2.onClick($event)"></c1>
<c2 #c2></c2>
Run Code Online (Sandbox Code Playgroud)