Angular 2:在标签更改时向子节点发送事件

时间:2017-07-25 08:36:45

标签: angular angular-material2

我正在使用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组件中处理。有没有办法将事件传输到图库组件,而不使用仅为此服务?

提前告诉你。

1 个答案:

答案 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);