| 
									
										
										
										
											2016-01-11 13:49:12 +01:00
										 |  |  | // #docplaster
 | 
					
						
							| 
									
										
										
										
											2016-06-03 11:16:46 -07:00
										 |  |  | // #docregion
 | 
					
						
							| 
									
										
										
										
											2016-05-03 14:06:32 +02:00
										 |  |  | import { Component, Injector }  from '@angular/core'; | 
					
						
							| 
									
										
										
										
											2016-01-11 13:49:12 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-03 14:06:32 +02:00
										 |  |  | import { Car, Engine, Tires }   from './car/car'; | 
					
						
							| 
									
										
										
										
											2016-06-03 11:16:46 -07:00
										 |  |  | import { Hero }                 from './heroes/hero'; | 
					
						
							| 
									
										
										
										
											2016-05-03 14:06:32 +02:00
										 |  |  | import { HeroService }          from './heroes/hero.service'; | 
					
						
							|  |  |  | import { heroServiceProvider }  from './heroes/hero.service.provider'; | 
					
						
							|  |  |  | import { Logger }               from './logger.service'; | 
					
						
							| 
									
										
										
										
											2016-01-11 13:49:12 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-03 11:16:46 -07:00
										 |  |  | // #docregion injector
 | 
					
						
							| 
									
										
										
										
											2016-01-11 13:49:12 +01:00
										 |  |  | @Component({ | 
					
						
							|  |  |  |   selector: 'my-injectors', | 
					
						
							|  |  |  |   template: `
 | 
					
						
							|  |  |  |   <h2>Other Injections</h2> | 
					
						
							| 
									
										
										
										
											2016-03-03 22:50:42 -08:00
										 |  |  |   <div id="car">{{car.drive()}}</div> | 
					
						
							| 
									
										
										
										
											2016-01-11 13:49:12 +01:00
										 |  |  |   <div id="hero">{{hero.name}}</div> | 
					
						
							|  |  |  |   <div id="rodent">{{rodent}}</div> | 
					
						
							|  |  |  |   `,
 | 
					
						
							| 
									
										
										
										
											2016-06-03 11:16:46 -07:00
										 |  |  |   providers: [Car, Engine, Tires, heroServiceProvider, Logger] | 
					
						
							| 
									
										
										
										
											2016-01-11 13:49:12 +01:00
										 |  |  | }) | 
					
						
							|  |  |  | export class InjectorComponent { | 
					
						
							| 
									
										
										
										
											2016-06-03 11:16:46 -07:00
										 |  |  |   car: Car = this.injector.get(Car); | 
					
						
							| 
									
										
										
										
											2016-01-11 13:49:12 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-03 11:16:46 -07:00
										 |  |  |   // #docregion get-hero-service
 | 
					
						
							|  |  |  |   heroService: HeroService = this.injector.get(HeroService); | 
					
						
							|  |  |  |   // #enddocregion get-hero-service
 | 
					
						
							|  |  |  |   hero: Hero = this.heroService.getHeroes()[0]; | 
					
						
							| 
									
										
										
										
											2016-01-11 13:49:12 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-08 01:06:25 +02:00
										 |  |  |   constructor(private injector: Injector) { } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-01-11 13:49:12 +01:00
										 |  |  |   get rodent() { | 
					
						
							| 
									
										
										
										
											2016-06-08 01:06:25 +02:00
										 |  |  |     let rousDontExist = `R.O.U.S.'s? I don't think they exist!`; | 
					
						
							| 
									
										
										
										
											2016-06-03 11:16:46 -07:00
										 |  |  |     return this.injector.get(ROUS, rousDontExist); | 
					
						
							| 
									
										
										
										
											2016-01-11 13:49:12 +01:00
										 |  |  |   } | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2016-06-03 11:16:46 -07:00
										 |  |  | // #enddocregion injector
 | 
					
						
							| 
									
										
										
										
											2016-01-11 13:49:12 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * R.O.U.S. - Rodents Of Unusual Size | 
					
						
							|  |  |  |  * // https://www.youtube.com/watch?v=BOv5ZjAOpC8
 | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | class ROUS { } |