Подтвердить что ты не робот

Angular 2 - ngOnDestroy не запускается

demo 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? Спасибо.

4b9b3361

Ответ 1

Попробуйте приведенный ниже код. он должен работать,

<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>