Injector

From Get docs
< @angular/coreAngular/docs/8/api/core/injector


Injector

class

Concrete injectors implement this interface.

See more...

abstract class Injector {
  static THROW_IF_NOT_FOUND: THROW_IF_NOT_FOUND
  static NULL: Injector
  static create(options: StaticProvider[] | { providers: StaticProvider[]; parent?: Injector; name?: string; }, parent?: Injector): Injector
  abstract get<T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T, flags?: InjectFlags): T
}

Subclasses

  • ReflectiveInjector


Description

For more details, see the "Dependency Injection Guide".

Static properties

Property Description
static THROW_IF_NOT_FOUND: THROW_IF_NOT_FOUND
static NULL: Injector

Static methods

Create a new Injector which is configure using StaticProviders.

static create(providers: StaticProvider[], parent?: Injector): Injector

Deprecated from v5 use the new signature Injector.create(options)


Parameters
providers StaticProvider[]
parent Injector Optional. Default is undefined.
Returns

Injector


static create(options: { providers: StaticProvider[]; parent?: Injector; name?: string; }): Injector

Parameters
options object
Returns

Injector


Usage Notes

Example
class Square {
  name = 'square';
}

const injector = Injector.create({providers: [{provide: Square, deps: []}]});

const shape: Square = injector.get(Square);
expect(shape.name).toEqual('square');
expect(shape instanceof Square).toBe(true);

Methods

Retrieves an instance from the injector based on the provided token.

abstract get<T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T, flags?: InjectFlags): T

Parameters
token InjectionToken
notFoundValue T Optional. Default is undefined.
flags InjectFlags Optional. Default is undefined.
Returns

T: The instance from the injector if defined, otherwise the notFoundValue.

Throws

Error When the notFoundValue is undefined or Injector.THROW_IF_NOT_FOUND.


abstract get(token: any, notFoundValue?: any): any

Deprecated from v4.0.0 use Type or InjectionToken


Parameters
token any
notFoundValue any Optional. Default is undefined.
Returns

any


Usage notes

Example

const injector: Injector =
    Injector.create({providers: [{provide: 'validToken', useValue: 'Value'}]});
expect(injector.get('validToken')).toEqual('Value');
expect(() => injector.get('invalidToken')).toThrowError();
expect(injector.get('invalidToken', 'notFound')).toEqual('notFound');

Injector returns itself when given Injector as a token:

const injector = Injector.create({providers: []});
expect(injector.get(Injector)).toBe(injector);

© 2010–2020 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://v8.angular.io/api/core/Injector