Ich muss auf ein Ereignis aus einem Array von Tab-Komponenten warten. Diese Registerkarten geben "onMinimized" aus. Ich möchte diese Ereignisse jedoch in einer Codezeile verknüpfen, anstatt (onMinimized)="hide"
für jeden Tab-Komponenteneintrag in der Vorlage einzugeben. Es gibt ein Array von ContentChildren, die ich durchschleifen kann.Wie höre ich ein ContentChild-Ereignis an, ohne mich über eine Vorlage anzumelden?
Ich möchte etwas ähnliches zu tun hat, folgt in der Mutter:
@ContentChildren(TabComponent) tabs: QueryList<TabComponent>;
...
ngAfterContentInit() {
this.tabs.map((t: TabComponent) => {
t.addEventListener("onMinimized", this.hide);
});
}
hide() {
// hide tabs
}
Gedanken?
Ist onMinimized ein benutzerdefinierter Ereignisemitter? Denn dann kannst du es im Code abonnieren. eine frage though - da tabs ein array ist, durchwühlst du nicht dieses array um die tabComponents zu erstellen? oder erstellen Sie die Registerkarten anders? – snorkpete
Jede Registerkarte ist in der Vorlage definiert (obwohl sie in einem Array sein könnte, nehme ich an). Wie erstelle ich einen Ereignis-Listener für eine eckige "Ausgabe" eines ContentChild über eine ContentChild-Referenz? – ktamlyn
Gefunden, aber es ist nicht genau das, was ich suche. http://stackoverflow.com/questions/37746058/what-is-the-best-way-to-detect-focus-event-in-contentchild-in-angular2 – ktamlyn