<p dir="auto"><strong>Steps to reproduce and a minimal demo of the problem</strong></p>
<p dir="auto">Plunkr: <a href="http://plnkr.co/edit/IIZFhPWaFDIRSg0fmEAB?p=preview" rel="nofollow">http://plnkr.co/edit/IIZFhPWaFDIRSg0fmEAB?p=preview</a></p>
<p dir="auto"><em>What steps should we try in your demo to see the problem?</em></p>
<ul dir="auto">
<li>See two children on the page, and the message, that only 2 children are alive.</li>
<li>Click update button</li>
<li>See that another 2 items with new uuids appeared;</li>
<li>See that more then 2 components are alive already</li>
<li>Do click on the BODY to see (in console) that mentioned children are really alive</li>
</ul>
<p dir="auto"><strong>Current behavior</strong><br>
Each second component is not destroyed.</p>
<p dir="auto"><strong>Expected/desired behavior</strong><br>
All components should properly be destroyed (you should have every time 2 children alive on the page)</p>
<p dir="auto"><strong>Other information</strong></p>
<ul dir="auto">
<li>In angular2-beta.15 issue does not exist. Components created / destroyed properly.</li>
<li>Also interesting part is that each 2nd component in ng-for is not destoyed.</li>
<li>If you remove ngIf from parent - everything will work as expected</li>
</ul>
<p dir="auto"><strong>Steps to reproduce and a minimal demo of the problem</strong><br>
demo <a href="http://plnkr.co/edit/7uoVecfa62i8No8GtQHI?p=preview" rel="nofollow">http://plnkr.co/edit/7uoVecfa62i8No8GtQHI?p=preview</a><br>
Angular2 beta 16 or higher - When I hide first section with nested components using *ngIf, ngOnDestroy of every nested component is triggered - this is OK.</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="  &lt;div *ngIf=&quot;!ff2&quot;&gt;
    &lt;my-component
    &gt;&lt;/my-component&gt;
    &lt;my-component
    &gt;&lt;/my-component&gt;
    &lt;my-component
    &gt;&lt;/my-component&gt;
    &lt;my-component
    &gt;&lt;/my-component&gt;
    &lt;my-component
    &gt;&lt;/my-component&gt;
  &lt;/div&gt;"><pre class="notranslate"><code class="notranslate">  &lt;div *ngIf="!ff2"&gt;
    &lt;my-component
    &gt;&lt;/my-component&gt;
    &lt;my-component
    &gt;&lt;/my-component&gt;
    &lt;my-component
    &gt;&lt;/my-component&gt;
    &lt;my-component
    &gt;&lt;/my-component&gt;
    &lt;my-component
    &gt;&lt;/my-component&gt;
  &lt;/div&gt;
</code></pre></div>
<p dir="auto">Outpu in console is</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="    init
    init
    init
    init
    init
    destroy
    destroy
    destroy
    destroy
    destroy
"><pre class="notranslate"><code class="notranslate">    init
    init
    init
    init
    init
    destroy
    destroy
    destroy
    destroy
    destroy

</code></pre></div>
<p dir="auto">But when I hide second section where subcomponents are duplicated by *ngFor, not every ngOnDestroy is triggered.</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="&lt;div *ngIf=&quot;!ff&quot;&gt;
   &lt;my-component
     *ngFor=&quot;#i of [1,2,3,4,5,6]&quot;
   &gt;&lt;/my-component&gt;
&lt;/div&gt;"><pre class="notranslate"><code class="notranslate">&lt;div *ngIf="!ff"&gt;
   &lt;my-component
     *ngFor="#i of [1,2,3,4,5,6]"
   &gt;&lt;/my-component&gt;
&lt;/div&gt;
</code></pre></div>
<p dir="auto">output in console is</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="(6) init
(3) destroy"><pre class="notranslate"><code class="notranslate">(6) init
(3) destroy
</code></pre></div>
<p dir="auto"><strong>Current behavior</strong><br>
not every ngOnDestroy is triggered</p>
<p dir="auto"><strong>Expected/desired behavior</strong><br>
every ngOnDestroy should be triggered</p>
<p dir="auto"><strong>Other information</strong><br>
in angular2 beta 9 it was working correctly<br>
<a href="http://plnkr.co/edit/Q8tLJKlpF6wEVcMWfxH1?p=preview" rel="nofollow">http://plnkr.co/edit/Q8tLJKlpF6wEVcMWfxH1?p=preview</a></p>