// #docplaster // #docregion // #docregion imports import {Component, Inject, provide} from 'angular2/core'; import {CarComponent} from './car/car.component'; import {HeroesComponent} from './heroes/heroes.component'; import {APP_CONFIG, Config, CONFIG} from './app.config'; import {Logger} from './logger.service'; import {User, UserService} from './user.service'; // #enddocregion imports import {InjectorComponent} from './injector.component'; import {TestComponent} from './test.component'; import {ProvidersComponent} from './providers.component'; @Component({ selector: 'my-app', template: `

{{title}}

User

{{userInfo}}

`, directives:[CarComponent, HeroesComponent, InjectorComponent, TestComponent, ProvidersComponent], // #docregion providers providers: [ Logger, UserService, provide(APP_CONFIG, {useValue: CONFIG}) ] // #enddocregion providers }) export class AppComponent { title:string; //#docregion ctor constructor( @Inject(APP_CONFIG) config:Config, private _userService: UserService) { this.title = config.title; } // #enddocregion ctor get isAuthorized() { return this.user.isAuthorized;} nextUser() { this._userService.getNewUser(); } get user() { return this._userService.user; } get userInfo() { return `Current user, ${this.user.name}, is `+ `${this.isAuthorized ? '' : 'not'} authorized. `; } } // #enddocregion