Angular 2 - 如何在兄弟组件中调用函数?

wes*_*and 5 typescript angular

我有2个需要通信的兄弟组件:

<app-controls></app-controls> <app-main></app-main>

app-controls包含需要在app-main组件中触发事件的按钮.是否有符合Angular 2风格指南的方式?

Gün*_*uer 11

您可以使用模板变量来获取对兄弟的引用.如果<app-controls>有单击按钮时发出事件的输出,您可以执行以下操作:

<app-controls (buttonClicked)="main.doSomething($event)"></app-controls>
<app-main #main></app-main>
Run Code Online (Sandbox Code Playgroud)

或者您可以传递对a的引用@Input() siblings;,然后在其上调用方法:

<app-controls [sibling]="main"></app-controls>
<app-main #main></app-main>
Run Code Online (Sandbox Code Playgroud)

  • 我正要发布一个提到输出+本地模板变量技术的答案,但你打败了我:)。这是[plunker](http://plnkr.co/edit/RfqrMs7Rn3S9ZeYLvY83?p=preview)。 (2认同)