構造ディレクティブを使用すると、ディレクティブが存在する(ネイティブ)要素をどのように保持できますか?通常のディレクティブで は、ElementRefはそれを指してnativeElementのしている - 例えば:構造ディレクティブ - 配置されている要素を見つける
<input type="text" example>
@Directive({
selector: '[example]'
})
export class ExampleDirective {
constructor(private el: ElementRef) {}
ngAfterViewInit() {
console.log(this.el.nativeElement); // the input
}
}
しかし、構造的ディレクティブで、それはテンプレートのコメントを指す - など。私はViewContainerRef、TemplateRef、@ContentChild、@ViewChildの様々な組み合わせを使用してみました
<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?
}
}
- ちょうど入力要素自体を見つけることができるようには見えません...
実際に解決しようとしている問題は何ですか? –