<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><br>
We have the following components trees:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="baseControl -&gt; inputBaseControl -&gt; inputControl
baseControl -&gt; textControl"><pre class="notranslate"><code class="notranslate">baseControl -&gt; inputBaseControl -&gt; inputControl
baseControl -&gt; textControl
</code></pre></div>
<p dir="auto">baseControl has three object injected into <strong>constructor</strong> <code class="notranslate">(Renderer, ElementRef, ChangeDetectorRef)</code></p>
<p dir="auto">If the derived classes do not call explicitly the <code class="notranslate">super.constructor</code>, then the injected object are <code class="notranslate">undefined</code>.</p>
<p dir="auto"><strong>Expected behavior</strong><br>
We expect that objects are injected correctly even without calling explicitly <code class="notranslate">super.constructor</code> like it was in Angular 2.4.1.</p>
<p dir="auto"><strong>Minimal reproduction of the problem with instructions</strong></p>
<p dir="auto">For example <code class="notranslate">inputControl </code>calls explicitly and works, but <code class="notranslate">textControl </code>does not call explicitly and does not work as expected.<br>
<a href="https://plnkr.co/edit/xXqJCy?p=preview" rel="nofollow">https://plnkr.co/edit/xXqJCy?p=preview</a></p>
<p dir="auto"><strong>What is the motivation / use case for changing the behavior?</strong><br>
This should be the standard way to manage inheritance.</p>
<p dir="auto"><strong>Please tell us about your environment:</strong><br>
Windows 10<br>
Visual Studio 2017<br>
NPM<br>
Kestrel</p>
<ul dir="auto">
<li>
<p dir="auto"><strong>Angular version:</strong> 4.0.0</p>
</li>
<li>
<p dir="auto"><strong>Browser:</strong> Chrome 56</p>
</li>
<li>
<p dir="auto"><strong>Language:</strong> TypeScript 2.2.1</p>
</li>
<li>
<p dir="auto"><strong>Node (for AoT issues):</strong> <code class="notranslate">node --version</code> =  7.7.2</p>
</li>
</ul>
<p dir="auto">I'm not sure if this is intentional, but this took me a while to puzzle out. I looked for an issue on the topic and found none. Demonstration plunker: <a href="http://plnkr.co/edit/YfCiTSnPdSARGwqJ7ifT?p=preview" rel="nofollow">http://plnkr.co/edit/YfCiTSnPdSARGwqJ7ifT?p=preview</a></p>
<p dir="auto">Basically, when you use</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="&lt;my-component *my-directive&gt;&lt;/my-component&gt;"><pre class="notranslate"><code class="notranslate">&lt;my-component *my-directive&gt;&lt;/my-component&gt;
</code></pre></div>
<p dir="auto">instead of</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="&lt;template my-directive&gt;
    &lt;my-component&gt;&lt;/my-component&gt;
&lt;/template&gt;"><pre class="notranslate"><code class="notranslate">&lt;template my-directive&gt;
    &lt;my-component&gt;&lt;/my-component&gt;
&lt;/template&gt;
</code></pre></div>
<p dir="auto">any additional inputs also have to be prefaced with <code class="notranslate">*</code>:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="&lt;my-component *my-directive *my-directive-input=&quot;something&quot;&gt;&lt;/my-component&gt;"><pre class="notranslate"><code class="notranslate">&lt;my-component *my-directive *my-directive-input="something"&gt;&lt;/my-component&gt;
</code></pre></div>
<p dir="auto">Additionally, the values are bound expressions by default without having to use <code class="notranslate">[prop]</code> binding syntax.</p>
<p dir="auto">This is in several ways counterintuitive.</p>