47 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			47 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|  | // #docplaster
 | ||
|  | //#docregion
 | ||
|  | import {Component, Injector}  from 'angular2/core'; | ||
|  | 
 | ||
|  | import {Car, Engine, Tires}   from './car/car'; | ||
|  | import {HeroService}          from './heroes/hero.service'; | ||
|  | import {heroServiceProvider}  from './heroes/hero.service.provider'; | ||
|  | import {Logger}               from './logger.service'; | ||
|  | 
 | ||
|  | //#docregion injector
 | ||
|  | @Component({ | ||
|  |   selector: 'my-injectors', | ||
|  |   template: `
 | ||
|  |   <h2>Other Injections</h2> | ||
|  |   <div id="car"> {{car.drive()}}</div> | ||
|  |   <div id="hero">{{hero.name}}</div> | ||
|  |   <div id="rodent">{{rodent}}</div> | ||
|  |   `,
 | ||
|  |   providers: [Car, Engine, Tires, | ||
|  |               heroServiceProvider, Logger] | ||
|  | }) | ||
|  | export class InjectorComponent { | ||
|  |   constructor(private _injector: Injector) { } | ||
|  | 
 | ||
|  |   car:Car = this._injector.get(Car); | ||
|  | 
 | ||
|  |   //#docregion get-hero-service
 | ||
|  |   heroService:HeroService = this._injector.get(HeroService); | ||
|  |   //#enddocregion get-hero-service
 | ||
|  |   hero = this.heroService.getHeroes()[0]; | ||
|  | 
 | ||
|  |   get rodent() { | ||
|  |     let rous = this._injector.getOptional(ROUS); | ||
|  |     if (rous) { | ||
|  |       throw new Error('Aaaargh!') | ||
|  |     } | ||
|  |     return "R.O.U.S.'s? I don't think they exist!"; | ||
|  |   } | ||
|  | } | ||
|  | //#enddocregion injector
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * R.O.U.S. - Rodents Of Unusual Size | ||
|  |  * // https://www.youtube.com/watch?v=BOv5ZjAOpC8
 | ||
|  |  */ | ||
|  | class ROUS { } |