Self
Декоратор параметра, используемый для параметров конструктора. Он указывает платформе DI начинать разрешение зависимостей с локального инжектора.
API
@ Self {}
Описание
Декоратор параметра, используемый для параметров конструктора. Он указывает платформе DI начинать разрешение зависимостей с локального инжектора.
Разрешение выполняется вверх по иерархии инжекторов, поэтому дочерние классы должны настраивать собственные провайдеры или быть готовы получить результат null.
Примечания по использованию
В следующем примере локальный инжектор может разрешить зависимость при создании самого класса, но не при создании дочернего класса.
class Dependency {}
@Injectable()
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();
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/Self