66 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			66 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|  | // #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:  `
 | ||
|  |     <h1>{{title}}</h1> | ||
|  |     <my-car></my-car> | ||
|  |     <my-injectors></my-injectors> | ||
|  |     <my-tests></my-tests> | ||
|  |     <h2>User</h2> | ||
|  |     <p id="user"> | ||
|  |       {{userInfo}} | ||
|  |       <button (click)='nextUser()'>Next User</button> | ||
|  |     <p> | ||
|  |     <my-heroes id="authorized" *ngIf="isAuthorized"></my-heroes> | ||
|  |     <my-heroes id="unauthorized" *ngIf="!isAuthorized"></my-heroes> | ||
|  |   `,
 | ||
|  |   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
 |