什么时候Angular决定销毁一个组件

gye*_*gye 14 components parent-child ondestroy angular

在Angular 2 with Ahead-of-Time(AOT)编译中,我有一个父组件和一个子组件,如下所示:

<div>
    <h1>I am a parent</h1>
    <myChild *ngIf="showChild"></myChild>
</div>
Run Code Online (Sandbox Code Playgroud)

我知道子模板是动态插入DOM的.我的问题是当"showChild"被评估为false时,Angular究竟会破坏子组件吗?或者Angular会破坏儿童组件吗?这是Angular调用"onDestroy()"方法的时间吗?

这是我之前向朋友发表的声明(如果我错了请纠正我):

当Angular看到DOM中不再需要某个组件时,它将破坏该组件.

Gün*_*uer 13

当Angular运行更改检测并更新ngIfNgIf指令输入的绑定时,NgIf从DOM中删除该组件.从DOM中删除组件后,ngDestroy()调用该组件,然后组件可以自由地收集垃圾.

如果在*ngIf表达式为true时删除父组件,则父组件和子组件将一起销毁.我不知道ngDestory()首先叫什么.