演示http://plnkr.co/edit/7uoVecfa62i8No8GtQHI?p=preview
当我使用*ngIf隐藏包含嵌套组件的第一部分时,会触发每个嵌套组件的ngOnDestroy.
<div *ngIf="!ff2">
<my-component
></my-component>
<my-component
></my-component>
<my-component
></my-component>
<my-component
></my-component>
<my-component
></my-component>
</div>
Run Code Online (Sandbox Code Playgroud)
控制台输出为:
init
init
init
init
init
destroy
destroy
destroy
destroy
destroy
Run Code Online (Sandbox Code Playgroud)
但是当我隐藏第二部分,其中子组件被*ngFor复制时,并不是每个ngOnDestroy都被触发.
<div *ngIf="!ff">
<my-component
*ngFor="#i of [1,2,3,4,5,6]"
></my-component>
</div>
Run Code Online (Sandbox Code Playgroud)
控制台输出为:
(6) init
(3) destroy
Run Code Online (Sandbox Code Playgroud)
你知道我做错了什么,或者angular2有问题吗?谢谢.