我正在使用Angular材质标签,我想要做的是当我点击标签时,我会向此标签的子项发送一个事件。
我的HTML看起来像这样
<md-tab-group *ngIf="me">
<md-tab label="Gallery" i18n-label="@@gallery">
<app-gallery [user]="me"></app-gallery>
</md-tab>
<md-tab label="Profile" i18n-label="@@profile">
<app-profile [user]="me"></app-profile>
</md-tab>
</md-tab-group>
标签已经实现了更改事件。问题是我可以在我的主要组件上处理事件,但不能在我的gallery组件中处理。有没有办法将事件传输到图库组件,而不使用仅为此服务?
提前告诉你。
答案 0 :(得分:3)
您可以通过为子项提供模板中的选择器,从父项调用子组件(在本例中为库)方法
<md-tab-group *ngIf="me">
<md-tab label="Gallery" i18n-label="@@gallery">
<app-gallery #galleryEl [user]="me"></app-gallery> //<--- add the html selector here
</md-tab>
<md-tab label="Profile" i18n-label="@@profile">
<app-profile [user]="me"></app-profile>
</md-tab>
</md-tab-group>
<强> Parent.ts:强>
@ViewChild('galleryEl') galleryEl ;
然后您可以使用此字段调用此组件的方法。
this.galleryEl.someEventMethod(theEvent);