2016-05-03 22 views
10

डेमो http://plnkr.co/edit/7uoVecfa62i8No8GtQHI?p=previewकोणीय 2 - ngOnDestroy

ट्रिगर नहीं है जब मैं का उपयोग कर * हर नेस्टेड घटक के 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 में एक मुद्दा है? धन्यवाद।

+1

एक बग की तरह दिखता है। –

+2

कोणीय बीटा 9 में यह काम करता है जैसा कि मैंने अपेक्षित किया है, इसलिए उनके पास एक बग है http://plnkr.co/edit/Q8tLJKlpF6wEVcMWfxH1?p=preview –

+0

बग रिपोर्ट https://github.com/angular/angular/issues/8458 –

उत्तर

0

OP’s own words में:

कोणीय बीटा 9 यह काम करता है के रूप में मैं उम्मीद में तो वे एक बग

ओपी के अपने bug report (बंद) द्वारा पुष्टि की है।

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>