@ViewChildの読み取りパラメーターとは


回答:


116

#mynameテンプレート変数を持つ要素タグに関連付けられたさまざまなタイプのインスタンスがいくつか存在する可能性があります。

要素ごとにElementRefandがありますViewContainerRef(多分、そのタグに適用されたコンポーネントまたはディレクティブからの他のもの)。

要素がコンポーネントの場合、コンポーネントインスタンスがあります。

要素に1つまたは複数のディレクティブを適用することもできます

{read: SomeType}あなたとの要素から返されるべきかのタイプ伝える#mynameテンプレート変数。

readパラメータを指定しない場合@ViewChild()は、

  • ElementRef コンポーネントが適用されていない場合のインスタンス、または
  • コンポーネントインスタンスがある場合。
  • 別のものを取得したい場合は、を使用して明示的に指定する必要がありますread

コンポーネントテンプレートで要素を選択するにはどうすればよいですか?もご覧ください


「たぶん、そのタグに適用されたコンポーネントまたはディレクティブからの他のもの」:可能なタイプの完全なリストを取得するにはどうすればよいですか?
Ghetolay 2016年

directives: [...]現在のコンポーネントまたはPLATFORM_DITECTIVESセレクタが一致する場所にリストされているディレクティブおよびコンポーネント。stackoverflow.com/questions/35233572/…を使用して、実行中のアプリケーションを調査できます。
ギュンターZöchbauer

3
これは、ノードに関連付けられているAngularタイプのみをサポートします。HTMLElementそれらの1つではありません。ElementRefElementRef.nativeElementを使用してHTMLElementにアクセスできます。
ギュンターZöchbauer

1
あらゆることを試し、Angular2のソースを調査するだけです。
ギュンターZöchbauer

1
要素がコンポーネントの場合はできません。あなたが使用している場合にのみ、あなたが欲しいものを指定することができます@ViewChild(... read: ElementRef) ...
ギュンターZöchbauer
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.