Флаг
InjectFlags.SkipSelf позволяет пропустить текущий инжектор и искать зависимость в родительских инжекторах. Это используется, когда в компоненте не должно быть локальных определений сервиса, а требуется внедрить его из вышестоящего уровня, например, из родителя или модуля.Например, компонент внедряет
ConfigService, но пропускает локальный провайдер и получает зависимость извне:import { Component, Inject, inject, InjectionToken, InjectFlags } from '@angular/core';
export const CONFIG_TOKEN = new InjectionToken<string>('Config');
@Component({
selector: 'child-component',
template: `Config: {{ value }}`,
providers: [{ provide: CONFIG_TOKEN, useValue: 'локальная конфигурация' }]
})
export class ChildComponent {
value = inject(CONFIG_TOKEN, InjectFlags.SkipSelf);
}В этом случае будет получено значение из родительского инжектора, даже если в текущем компоненте есть свой провайдер
CONFIG_TOKEN. 👉 @sWebDev
