gpt4 book ai didi

javascript - Angular 2 - ngOnDestroy 未触发

转载 作者:可可西里 更新时间:2023-11-01 02:48:13 24 4
gpt4 key购买 nike

演示 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com