28 lines
918 B
TypeScript
28 lines
918 B
TypeScript
import { ReflectiveInjector } from '@angular/core';
|
|
|
|
import { Car, Engine, Tires } from './car';
|
|
import { Logger } from '../logger.service';
|
|
|
|
// #docregion injector
|
|
export function useInjector() {
|
|
let injector: ReflectiveInjector;
|
|
// #enddocregion injector
|
|
/*
|
|
// #docregion injector-no-new
|
|
// Cannot instantiate an ReflectiveInjector like this!
|
|
let injector = new ReflectiveInjector([Car, Engine, Tires]);
|
|
// #enddocregion injector-no-new
|
|
*/
|
|
// #docregion injector, injector-create-and-call
|
|
injector = ReflectiveInjector.resolveAndCreate([Car, Engine, Tires]);
|
|
// #docregion injector-call
|
|
let car = injector.get(Car);
|
|
// #enddocregion injector-call, injector-create-and-call
|
|
car.description = 'Injector';
|
|
|
|
injector = ReflectiveInjector.resolveAndCreate([Logger]);
|
|
let logger = injector.get(Logger);
|
|
logger.log('Injector car.drive() said: ' + car.drive());
|
|
return car;
|
|
}
|