2017-02-20 2 views
0

Ich denke, dass ngAfterViewInit() aufgerufen werden sollte, nachdem die Ansicht einer Komponente und die Ansichten der untergeordneten Elemente erstellt wurden. Ich testete das und stellte fest, dass die Kinder ngAfterViewInit() s vor dem ngAfterViewInit() des Elternteils angerufen werden. Ist es ein erwartetes Verhalten? Ich brauche eine Funktion in der Elternklasse, die nach ngAfterViewInit aufgerufen wird. Wie kann ich das machen?Aufruf von ngAfterContentInit in der übergeordneten Klasse - Angular 2

Grüße

Antwort

1

Ja, das ist das erwartete Verhalten. ngAfterViewInit() heißt nach wird die Ansicht initialisiert. Kinder sind Teil der Aussicht, daher kann es nicht vor Kindern ngAfterViewInit() aufgerufen werden.

Sie können versuchen, wenn ngAfterContentInit() Ihren Anforderungen entspricht, aber ich würde Ihren Ansatz überdenken. Verwenden Sie beispielsweise einen gemeinsam genutzten Dienst mit einer Observablen, um die Eltern über den Status der Kinder zu informieren.

+0

Ich habe eine 'Tabelle' Komponente mit geschachtelten Tabellen-Zeilen-Komponenten und Tabellen-Komponenten. Nach der Initialisierung der Ansicht möchte ich ein Array in der Hauptkomponente erstellen. Wenn ngAfterContentInit zuerst in der übergeordneten Komponente initialisiert wird, kann ich keinen Child-Inhalt –

+0

Childs zuerst initialisieren. Ich finde deine Frage verwirrend. Fügen Sie Ihrer Frage einen Code hinzu, der zeigt, was Sie zu erreichen versuchen. –

Verwandte Themen