SkipSelf
Декоратор параметра, используемый для параметров конструктора. Он указывает фреймворку внедрения зависимостей начинать разрешение зависимости с родительского инжектора. Разрешение выполняется вверх по иерархии инжекторов, поэтому локальный инжектор не проверяется на наличие провайдера.
API
@ SkipSelf {}
Примечания по использованию
В следующем примере зависимость можно разрешить при создании экземпляра дочернего класса, но не при создании экземпляра самого класса.
class Dependency {}
@Injectable()
class NeedsDependency {
constructor(@SkipSelf() public dependency: Dependency) {}
}
const parent = Injector.create({providers: [{provide: Dependency, deps: []}]});
const child = Injector.create({
providers: [{provide: NeedsDependency, deps: [Dependency]}],
parent,
});
expect(child.get(NeedsDependency).dependency instanceof Dependency).toBe(true);
const inj = Injector.create({
providers: [{provide: NeedsDependency, deps: [[new Self(), Dependency]]}],
});
expect(() => inj.get(NeedsDependency)).toThrowError();
Super-powered by Google ©2010–2025.
Code licensed under an MIT-style License. Documentation licensed under CC BY 4.0.
https://angular.dev/api/core/SkipSelf