Со структурной директивой, как бы я мог удержать элемент (native), на который включена директива? С обычной директивой ElementRef имеет свой nativeElement, указывающий на него - например:
<input type="text" example>
@Directive({
selector: '[example]'
})
export class ExampleDirective {
constructor( private el: ElementRef) {}
ngAfterViewInit() {
console.log(this.el.nativeElement); // the input
}
}
Но со структурной директивой он указывает на комментарий к шаблону - например.
<input type="text" *example>
@Directive({
selector: '[example]'
})
export class ExampleDirective {
constructor(
private el: ElementRef,
private view: ViewContainerRef,
private template: TemplateRef<any>
) {}
ngAfterViewInit() {
this.view.createEmbeddedView(this.template);
console.log(this.el.nativeElement); // template bindings comment
// how to find the input itself?
}
}
Я пробовал использовать различные комбинации ViewContainerRef, TemplateRef, @ContentChild, @ViewChild - просто кажется, что не может найти сам элемент ввода...