40 lines
1.0 KiB
TypeScript
40 lines
1.0 KiB
TypeScript
// #docplaster
|
|
// #docregion
|
|
import {Component, ElementRef, Host, Inject, Optional} from 'angular2/core';
|
|
import {HeroCacheService} from './hero-cache.service';
|
|
import {LoggerService} from './logger.service';
|
|
|
|
// #docregion component
|
|
@Component({
|
|
selector:'hero-contact',
|
|
template:`
|
|
<div>Phone #: {{phoneNumber}}
|
|
<span *ngIf="hasLogger">!!!</span></div>`
|
|
})
|
|
export class HeroContactComponent {
|
|
|
|
hasLogger = false;
|
|
|
|
constructor(
|
|
// #docregion ctor-params
|
|
@Host() // limit to the host component's instance of the HeroCacheService
|
|
private _heroCache: HeroCacheService,
|
|
|
|
@Host() // limit search for logger; hides the application-wide logger
|
|
@Optional() // ok if the logger doesn't exist
|
|
private _loggerService: LoggerService
|
|
// #enddocregion ctor-params
|
|
) {
|
|
if (_loggerService) {
|
|
this.hasLogger = true;
|
|
_loggerService.logInfo('HeroContactComponent can log!');
|
|
}
|
|
// #docregion ctor
|
|
}
|
|
// #enddocregion ctor
|
|
|
|
get phoneNumber() { return this._heroCache.hero.phone; }
|
|
|
|
}
|
|
// #enddocregion component
|