演示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>
控制台中的输出为:
init
init
init
init
init
destroy
destroy
destroy
destroy
destroy
但是,当我隐藏第二部分,其中子组件由* ngFor复制时,不会触发每个ngOnDestroy。
<div *ngIf="!ff">
<my-component
*ngFor="#i of [1,2,3,4,5,6]"
></my-component>
</div>
控制台中的输出为:
(6) init
(3) destroy
您是否知道我做错了什么,或者在angular2中有问题?谢谢。
最佳答案
尝试下面提到的代码。它应该工作,
<button type="button" (click)="ff = !ff">toggle</button>
<template ngFor let-item [ngForOf]="[1,2,3,4,5,6]">
<my-component *ngIf="!ff"></my-component>
</template>
关于javascript - Angular 2-未触发ngOnDestroy,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37012854/