<p dir="auto">When converting the TypeScript lifecycle example to Dart, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/adaojunior/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/adaojunior">@adaojunior</a> noticed that the TS &amp; Dart versions generate slightly different events.</p>
<p dir="auto">I'm not sure these differences are significant, but I'm reporting it just in case. I initially interpreted this test as meaning that the Dart UI wasn't updated every time it should be. Now I think it <em>is</em> updated the same way the TS UI is, but that <strong>the TS version has 1 extra pair of after*Checked events</strong>.</p>
<p dir="auto">The source code for both the TS &amp; Dart versions is in <a href="https://github.com/adaojunior/lifecycle-hooks">https://github.com/adaojunior/lifecycle-hooks</a>. To see the diffs when they run:</p>
<ol dir="auto">
<li>
<p dir="auto"><a href="https://angular.io/resources/live-examples/lifecycle-hooks/ts/plnkr.html" rel="nofollow">Right-click here</a> to open a window with the runnable TS sample.</p>
</li>
<li>
<p dir="auto"><a href="https://adaojunior.github.io/lifecycle-hooks" rel="nofollow">Right-click here</a> to open another window with the runnable Dart sample.</p>
</li>
<li>
<p dir="auto">Open the Dart window's console.</p>
</li>
<li>
<p dir="auto">In both windows, click <strong>Create PeekABooComponent</strong>.<br>
The <strong>Dart</strong> UI displays this:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="#1 onChanges (1): name initialized to &quot;Windstorm&quot;
#1 onInit
#1 afterContentInit
#1 afterContentChecked (1)
#1 afterViewInit
#1 afterViewChecked (1)"><pre class="notranslate"><code class="notranslate">#1 onChanges (1): name initialized to "Windstorm"
#1 onInit
#1 afterContentInit
#1 afterContentChecked (1)
#1 afterViewInit
#1 afterViewChecked (1)
</code></pre></div>
<p dir="auto">Its console displays the same messages, plus 2 more:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="...
#1 afterContentChecked (2)
#1 afterViewChecked (2)"><pre class="notranslate"><code class="notranslate">...
#1 afterContentChecked (2)
#1 afterViewChecked (2)
</code></pre></div>
<p dir="auto">The TS UI displays these messages:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="#1 onChanges (1): name initialized to &quot;Windstorm&quot;
#1 onInit
#1 afterContentInit
#1 afterContentChecked (1)
#1 afterViewInit
#1 afterViewChecked (1)
#1 afterContentChecked (2)
#1 afterViewChecked (2)"><pre class="notranslate"><code class="notranslate">#1 onChanges (1): name initialized to "Windstorm"
#1 onInit
#1 afterContentInit
#1 afterContentChecked (1)
#1 afterViewInit
#1 afterViewChecked (1)
#1 afterContentChecked (2)
#1 afterViewChecked (2)
</code></pre></div>
<p dir="auto">So the Dart and TS logs appear to be the same, but the 2 last events don't make it to the Dart UI (yet).</p>
</li>
<li>
<p dir="auto">In both windows, click <strong>Update Hero</strong>.</p>
<p dir="auto">The Dart UI adds the following lines:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="...
#1 afterContentChecked (2)
#1 afterViewChecked (2)
#1 onChanges (2): name changed to &quot;Windstorm!&quot;
#1 afterContentChecked (3)
#1 afterViewChecked (3)"><pre class="notranslate"><code class="notranslate">...
#1 afterContentChecked (2)
#1 afterViewChecked (2)
#1 onChanges (2): name changed to "Windstorm!"
#1 afterContentChecked (3)
#1 afterViewChecked (3)
</code></pre></div>
<p dir="auto">The Dart console adds the following lines:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="...
#1 onChanges (2): name changed to &quot;Windstorm!&quot;
#1 afterContentChecked (3)
#1 afterViewChecked (3)
#1 afterContentChecked (4)
#1 afterViewChecked (4)"><pre class="notranslate"><code class="notranslate">...
#1 onChanges (2): name changed to "Windstorm!"
#1 afterContentChecked (3)
#1 afterViewChecked (3)
#1 afterContentChecked (4)
#1 afterViewChecked (4)
</code></pre></div>
<p dir="auto">The TS UI adds the following lines:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="...
#1 afterContentChecked (3)
#1 afterViewChecked (3)
#1 onChanges (2): name changed to &quot;Windstorm!&quot;
#1 afterContentChecked (4)
#1 afterViewChecked (4)
#1 afterContentChecked (5)
#1 afterViewChecked (5)"><pre class="notranslate"><code class="notranslate">...
#1 afterContentChecked (3)
#1 afterViewChecked (3)
#1 onChanges (2): name changed to "Windstorm!"
#1 afterContentChecked (4)
#1 afterViewChecked (4)
#1 afterContentChecked (5)
#1 afterViewChecked (5)
</code></pre></div>
</li>
</ol>
<p dir="auto">Each click of <strong>Update Hero</strong> results in 1 onChanges event and 2 (Dart) or 3 (TS) groups of afterContentChecked+afterViewChecked events.</p>
<p dir="auto"><strong>I'm submitting a ...</strong>  (check one with "x")</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="[x ] bug report =&gt; search github for a similar issue or PR before submitting
[ ] feature request
[ ] support request =&gt; Please do not submit support request here, instead see https://github.com/angular/angular/blob/master/CONTRIBUTING.md#question"><pre class="notranslate"><code class="notranslate">[x ] bug report =&gt; search github for a similar issue or PR before submitting
[ ] feature request
[ ] support request =&gt; Please do not submit support request here, instead see https://github.com/angular/angular/blob/master/CONTRIBUTING.md#question
</code></pre></div>
<p dir="auto"><strong>Current behavior</strong></p>
<p dir="auto">When using lazy module loading the module constructor it s initialized twice</p>
<p dir="auto"><strong>Expected behavior</strong></p>
<p dir="auto">i need normal constructor behavior</p>
<p dir="auto"><strong>Minimal reproduction of the problem with instructions</strong><br>
Here is the exemple with DashboardModule constructor called twice</p>
<p dir="auto"><a href="https://plnkr.co/edit/Ag6BPxwKuW3iBWDOMTBV?p=preview" rel="nofollow">https://plnkr.co/edit/Ag6BPxwKuW3iBWDOMTBV?p=preview</a></p>

<p dir="auto"><strong>What is the motivation / use case for changing the behavior?</strong></p>

<p dir="auto"><strong>Please tell us about your environment:</strong></p>

<p dir="auto">Linux mint, Webstorm</p>
<ul dir="auto">
<li><strong>Angular version:</strong> 2.3.1</li>
</ul>

<ul dir="auto">
<li><strong>Browser:</strong> [all | Chrome XX | Firefox XX | IE XX | Safari XX | Mobile Chrome XX | Android X.X Web Browser | iOS XX Safari | iOS XX UIWebView | iOS XX WKWebView ]</li>
</ul>

<ul dir="auto">
<li>
<p dir="auto"><strong>Language:</strong> [all | TypeScript X.X | ES6/7 | ES5]</p>
</li>
<li>
<p dir="auto"><strong>Node (for AoT issues):</strong> <code class="notranslate">node --version</code> =</p>
</li>
</ul>