import { Attribute, Component, ElementRef, Inject, Optional, Query, QueryList } from '@angular/core'; // #docregion @Component({ selector: 'hero-title', template: `

{{titlePrefix}} {{title}}

` }) export class TitleComponent { constructor( @Inject('titlePrefix') @Optional() private titlePrefix: string, @Attribute('title') private title: string, @Query('okMsg') private msg: QueryList) { } ok() { let msgEl = this.msg.first.nativeElement; msgEl.textContent = 'OK!'; } } // #enddocregion @Component({ selector: 'hero-di-inject-additional', template: ` `, directives: [TitleComponent] }) export class AppComponent { }