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



Parameter decorator to be used on constructor parameters, which tells the DI framework to start dependency resolution from the local injector.

See more...

See also

  • SkipSelf
  • Optional


Resolution works upward through the injector hierarchy, so the children of this class must configure their own providers or be prepared for a null result.


Usage notes

In the following example, the dependency can be resolved by the local injector when instantiating the class itself, but not when instantiating a child.

class Dependency {}

class NeedsDependency {
  constructor(@Self() public dependency: Dependency) {}

let inj = Injector.create({
  providers: [
    {provide: Dependency, deps: []},
    {provide: NeedsDependency, deps: [[../new Self(), Dependency]]}
const nd = inj.get(NeedsDependency);

expect(nd.dependency instanceof Dependency).toBe(true);

const child = Injector.create({
  providers: [{provide: NeedsDependency, deps: [[../new Self(), Dependency]]}],
  parent: inj
expect(() => child.get(NeedsDependency)).toThrowError();

© 2010–2020 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.