49 lines
883 B
TypeScript
49 lines
883 B
TypeScript
|
import {
|
||
|
Attribute,
|
||
|
Component,
|
||
|
ElementRef,
|
||
|
Inject,
|
||
|
Optional,
|
||
|
Query,
|
||
|
QueryList
|
||
|
} from 'angular2/core';
|
||
|
|
||
|
// #docregion
|
||
|
@Component({
|
||
|
selector: 'hero-title',
|
||
|
template: `
|
||
|
<h1>{{titlePrefix}} {{title}}</h1>
|
||
|
<button (click)="ok()">OK</button>
|
||
|
<ng-content></ng-content>
|
||
|
`
|
||
|
})
|
||
|
export class TitleComponent {
|
||
|
constructor(
|
||
|
@Inject('titlePrefix')
|
||
|
@Optional()
|
||
|
private titlePrefix:string,
|
||
|
@Attribute('title')
|
||
|
private title:string,
|
||
|
@Query('okMsg')
|
||
|
private msg:QueryList<ElementRef>) {
|
||
|
}
|
||
|
|
||
|
ok() {
|
||
|
let msgEl =
|
||
|
this.msg.first.nativeElement;
|
||
|
msgEl.textContent = 'OK!';
|
||
|
}
|
||
|
}
|
||
|
// #enddocregion
|
||
|
|
||
|
@Component({
|
||
|
selector: 'hero-di-inject-additional',
|
||
|
template: `<hero-title title="Tour of Heroes">
|
||
|
<span #okMsg class="ok-msg"></span>
|
||
|
</hero-title>`,
|
||
|
directives: [TitleComponent]
|
||
|
})
|
||
|
export class AppComponent {
|
||
|
|
||
|
}
|