2017-02-09 6 views
0

、私はこのような構造を持っている場合:私は私のparentComponentに「.selected」クラスでChildAのインスタンスにアクセスするにはどうすればよいAngular2:たとえばCSSクラスによるアクセス複数の子要素の一つ

<parent-component> 
    <child-a class="a"></child-a> 
    <child-a class="b selected"></child-a> 
    <child-b class="c"></child-b> 
    <child-b class="d"></child-b> 
    ... 
</parent-component> 

EDIT:parentComponentには Iは、(プロパティitemsで)10個のオブジェクトのリストを有し、itemsアレイ上のテンプレートIループ内、及びChildA又はChildBいくつかに依存するかどうか(項目毎ChildA又はChildBコンポーネントを作成します項目の設定)。

次に、項目をクリックすると、「選択済み」と表示されます(itemsの対応するオブジェクトはselectedItemとして格納されます)。その後、私はselectedItemに対応(および「.selected」クラス」を持っている)コンポーネントにアクセスする必要が

+0

あなたが尋ねるものは不明です。 plunkを作り、あなたの特定の問題を明確にする。 –

+0

DOMを照会するだけでなく、そのクラスで子コンポーネントを選択できるとは思わない。名前を付けて '@ ContentChild'を使って選択することができます。例えば'<子コンポーネント-a #childBクラス=" b ">' – rob

+0

@RomanC質問を更新しました。 – eagor

答えて

3

あなたの親で使用@ContentChildまたは@ContentChildren

たとえば:。。あなたのケースでの使用には : @ContentChildren(ChildComponentA) childs: QueryList<ChildComponentA>; uは、すべてのチャイルズ 今だけの単純な反復処理

詳細については、こちらを参照してくださいました:。https://angular.io/docs/ts/latest/api/core/index/ContentChildren-decorator.html


EDIT: あなたが選択したクラスを検出するために、子供にElementRefを使用することができ、ここでは一例です:

plunkr here それはuが何をしたいか何本あります?

+0

と "。選択"クラスはどうですか? – eagor

+1

最良の方法(今と私のため)は、child-N、 'isSelected'にプロパティを追加し、コンポーネントクエリリストを繰り返し実行するときにチェックします – Daredzik

+0

@eagor私は答えを更新します。 ? – Daredzik

関連する問題