Wann genau entscheidet sich Angular, eine Komponente zu zerstören

8

In Angular 2 mit AOT-Kompilierung habe ich eine übergeordnete Komponente und eine untergeordnete Komponente wie folgt:

%Vor%

Ich weiß, dass die untergeordnete Vorlage dynamisch in das DOM eingefügt wird. Meine Frage ist, wenn "showChild" zu false ausgewertet wird, wann genau Angular die Kindkomponente zerstört? Oder wird Angular die Kinderkomponente überhaupt zerstören? Ist das die Zeit, die Angular die Methode "onDestroy ()" aufruft?

Hier ist eine Aussage, die ich einem Freund früher gemacht habe (bitte korrigieren Sie mich, wenn ich falsch liege):

  

Wenn Angular erkennt, dass eine Komponente im DOM nicht mehr benötigt wird, wird dies geschehen   zerstöre die Komponente.

    
gye 06.04.2017, 15:36
quelle

1 Antwort

8

Wenn Angular die Änderungserkennung durchführt und die Bindung an den ngIf -Eingabe der NgIf -Direktive aktualisiert wird, entfernt NgIf die Komponente aus dem DOM. Nachdem die Komponente aus dem DOM entfernt wurde, wird ngDestroy() aufgerufen, und dann ist die Komponente frei, um den Müll zu sammeln.

Wenn die übergeordnete Komponente entfernt wird, während der Ausdruck *ngIf wahr ist, werden das übergeordnete Element und das untergeordnete Element zusammen vernichtet. Ich weiß nicht, was ngDestory() jedoch zuerst heißt.

    
Günter Zöchbauer 06.04.2017 16:58
quelle