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 { }
 |