How to provide an instance oer each child component?
<p>I'm getting familiar with how dependency injection works in Angular 2, but I'm trying to figure out if a specific use case is possible.</p>

<p>In short I'd like to have a child component that has a dependency injected like so:</p>

<pre><code>@Component( {
    selector: 'child',
    template: `
        &lt;div class="child"&gt;
            &lt;span&gt;&lt;a href="#" (click)="idService.regenerate()"&gt;Regenerate&lt;/a&gt;&lt;/span&gt;
            &lt;span&gt;{{idService.id}}&lt;/span&gt;
        &lt;/div&gt;
    `
})
export class ChildComponent {

    constructor(
        protected idService: IdService
    )
    {}
}
</code></pre>

<p>At higher levels of my component tree I am using <code>providers: [IdService]</code> to inject different instances of the service. This all makes sense and doesn't give me a problem. However, what I'd like to understand is if this is possible without creating a "copy" of the child component with its own <code>providers: [...]</code> property in the component annotation:</p>

<p><a href="https://plnkr.co/edit/ZMYNIH7lB0Oi6EBSYmfB?p=preview" rel="nofollow noreferrer">https://plnkr.co/edit/ZMYNIH7lB0Oi6EBSYmfB?p=preview</a></p>

<p>In that example you'll see the bottom set of components each get a new instance of the <code>IdService</code> class, but it's because they're really a new component that specifically requests a new instance.</p>

<p>What I'd like to know is if there's a way to achieve this simply with the parent component? Like being able to say "give a new instance each time a child component tries to resolve this specific dependency"?</p>