コンポーネントに投影されたすべての要素への参照を取得するにはどうすればよいですか?今、私は私のTestComponent
内でこれらのリンクや画像(および潜在的に他の要素タイプ)への参照を取得する方法Componentに投影されたすべての要素への参照を取得するにはどうすればよいですか?
@Component({
selector: 'test',
template: '<ng-content></ng-content>'
})
class TestComponent {}
@Component({
selector: 'app',
template: `
<test>
<img src="http://example.org/1.jpg">
<a href="http://example.org">Some Link</a>
</test>
`,
directives: [ TestComponent ]
})
export class AppComponent {}
:
はのは、私はTestComponent
にいくつかのリンクや画像を投影しAppComponent
があるとしましょうか?
ソリューション:this postを読む
は、以下の示唆
のliセレクターでContentChildren +ディレクティブを一つの優れたソリューションを @Directiveデコレータでセレクタを利用することです。 <l>要素を選択するディレクティブを定義し、@ContentChildrenクエリを使用してl> 要素を コンポーネントの子要素のみにフィルタリングします。
しかし、これは1つの要素タイプを取得したい場合にのみ機能しますが、複数のタイプを取得したい場合、それぞれのタイプのディレクティブを作成する必要があります。タイプ?)...これは実用的な方法のように感じません。
別の方法がありますか?または直接のDOM操作はこの場合の唯一の解決策ですか?
@Directive({selector: 'a、img'}) ' – yurzui
@yurzuiああ、グローバルセレクタ' * 'で試してみましたが、複数のセレクタをリストすることもうまくいかないと思っていました。自由に回答を加えてください。私はそれを受け入れることをうれしく思います。 –