Предположим, у вас есть следующая директива, которая добавляет провайдера:
@Directive({
selector: '[provider]',
providers: [
{
provide: 'token',
useValue: 'value'
}
]
})
export class ProviderDirective {
constructor() {
console.log('Ptovider Dir');
}
}
И используйте его в шаблоне, подобном следующему:
@Component({
selector: 'a-comp',
template: `
<div provider>I am div with a provider</div>
`
})
export class AComponent {}
Чтобы найти определение элемента и поставщиков, добавленныхДиректива, откройте консоль, выберите элемент div
и введите следующее:
ng.probe($0).injector.elDef
Там вы увидите свойство element
, указывающее на объект с общедоступными провайдерами.