Dans Angular 2 avec compilation Ahead-of-Time (AOT), j'ai un composant parent et un composant enfant, comme ceci:
<div>
<h1>I am a parent</h1>
<myChild *ngIf="showChild"></myChild>
</div>
Je sais que le modèle enfant est inséré dynamiquement dans le DOM.
Si showChild
est évalué en false
, quand exactement Angular détruit le composant enfant? Ou Angular détruit-il l'enfant) Est-ce le moment Angular invoque la méthode onDestroy()
?
Lorsque Angular exécute la détection des modifications et que la liaison à l'entrée ngIf
de la directive NgIf
est mise à jour, NgIf
supprime le composant du DOM Une fois le composant supprimé du DOM, ngDestroy()
est appelée, puis le composant est libre de récupérer les ordures.
Si le composant parent est supprimé alors que l'expression *ngIf
Est vraie, le parent et l'enfant seront détruits ensemble. Je ne sais pas comment ngDestory()
est appelé en premier.