我有两个需要交互的兄弟组件:
app-controls包含需要在app-main组件中触发事件的按钮。是否有符合Angular 2风格指南的方法来实现这一点?
您可以使用模板变量来获取兄弟元素的引用。
如果 <app-controls>
元素具有输出功能,在按钮被点击时它将触发事件,您可以这样做:
<app-controls (buttonClicked)="main.doSomething($event)"></app-controls>
<app-main #main></app-main>
或者你可以传递一个引用到@Input() siblings;
,然后对它调用方法:
或者你可以传递一个引用到@Input() siblings;
,然后对它调用方法:
<app-controls [sibling]="main"></app-controls>
<app-main #main></app-main>
两种方法:
使用依赖注入的共享服务。
或者使用@Input()
和@Output()
装饰器:
https://angular.io/docs/ts/latest/cookbook/component-communication.html