2017-06-03 2 views
0

Ich dachte über eine Möglichkeit, eine benutzerdefinierte Komponente darauf aufmerksam machen, dass die Registerkarte, die es hostet ausgewählt wurde. Lassen Sie uns sagen, das ist, was ich habe:Benachrichtigen Komponente, die Hosting-Registerkarte wurde aktiviert

<md-tab-group (selectChange)="activateTab($event)"> 
    <md-tab *ngFor="let tab of tabs"> 
     <ng-template md-tab-label> 
      <em>{{tab.label}}</em><span fxFlex></span><button class="md-button md-fab-close" (click)="removeTab(tab)"><md-icon md svgIcon="fd-close"></md-icon></button> 
     </ng-template> 
     <info-pane [viewBag]="tab.viewBag"></info-pane> 
    </md-tab> 
</md-tab-group> 

Die InfoPaneComponent hat eine Methode namens actualize, die aufgerufen werden soll, wenn die Registerkarte aktiviert.

Die selectChange emittiert ein MdTabChangeEvent die Registerkarte Index und die MdTab selbst hat, aber ich kann nicht einen Weg zu graben hinein und lernen Sie die InfoPaneComponent finden. Und ich habe keine richtige Methode gefunden, diese Methode zu nennen, ohne in MdTab zu graben. Kann mir jemand bitte einen Hinweis geben?

Antwort

0

Sie sollten eine @ViewChild -Eigenschaft für die InfoPaneComponent erstellen und diese dann beim SelectChange-Ereignis aufrufen, indem Sie den Registerindex überprüfen (wenn Sie mehrere Registerkarten haben). Hier ist eine Referenz zur Verwendung von @ViewChild http://learnangular2.com/viewChild/

+0

Ich dachte darüber nach, aber es impliziert die Erstellung einer Unterklasse für 'MdTab' und dann stattdessen verwenden, die ich wollte, oder es gibt einen anderen Weg? – Jyrkka

Verwandte Themen