angular-cn/public/docs/_examples/dependency-injection/ts/app/injector.component.ts

47 lines
1.2 KiB
TypeScript
Raw Normal View History

// #docplaster
//#docregion
2016-04-27 14:28:22 -04:00
import {Component, Injector} from '@angular/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() {
2016-04-20 20:12:21 -04:00
let rous = this._injector.get(ROUS, null);
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 { }