В зависимости от того, откуда вы хотите получить доступ к экземпляру директивы, вы должны иметь возможность получить его с помощью @ViewChild
или инжектора конструктора.
Из вашего контроллера (компонента) или из вашего customDirective вы должныбыть в состоянии сделать следующее:
// will be available in ngOnInit
@ViewChild(ClrDateInput, { static: true })
clrDateDirective: ClrDateInput;
при условии, что вы можете иметь несколько директив ClrDateInput
, которые вы можете использовать @ViewChildren
:
// will be available in ngAfterViewInit
@ViewChildren(ClrDateInput)
clrDateDirectives: QueryList<ClrDateInput>;
из основного элемента самой директивы вы можетевведите директиву с помощью инжектора конструктора:
// app.component.html
<custom-app ctrlDate></custom-app>
// custom-app.component.ts
@Component({
selector: "custom-app",
template: `
<h2>Custom App</h2>
`
})
class CustomAppComponent {
constructor(@Self() private ClrDateInput: ClrDateInput) {}
Вы можете взглянуть на пример песочница .