2017-01-30 50 views
0

角2では、コンポーネントは多くの子コンポーネントを持つことができ、このように* ngIfを使用して一度に1つのコンポーネントのみが表示される状況があります。親の子データが角2の最良の方法を共有する

<div class="main-content" *ngIf="vdcService.vdRequest.sectionId == 1"> 
    <a></a> 
</div> 

<div class="main-content" *ngIf="vdcService.vdRequest.sectionId == 15"> 
    <b></b> 
</div> 
<div class="main-content" *ngIf="vdcService.vdRequest.sectionId == 15"> 
    <c></c> 
</div> 

これらのコンポーネントの多くは、テーブルやその他の要素に固有のデータを表示します。今私は親からこれらの子コンポーネントにデータを送信したいと思います。 @Inputを使用してデータを渡すか、サービスにデータを格納し、子コンポーネントがサービスのデータに直接アクセスする必要があるかどうかを、最良の方法でどのように行うことができますか。親コンポーネントは、どのコンポーネントがレンダリングされるのかを見て、休憩サービスからデータを取得しています。私はオプションを使うべきか何か他の最善の解決策が必要ないくつかの提案が必要ですか?

+0

https://angular.io/docs/ts/latest/cookbook/component-communication.html –

+0

はい、私はそれを読んでいますが、サービスで定義されたオブジェクトを持っているとしましょう。すべての子コンポーネントがそれにアクセスしてから送信する理由それは毎回子供に。 –

+0

詳細な要件によって異なります。オブザーバブルを使用すると、コンポーネントが変更を通知される可能性があります。それ以外の場合、コンポーネントは変更をポーリングする必要があります(角度変化検出がこれを行います)。 –

答えて

0

子供のコミュニケーションの親です。最も簡単な方法は、各子コンポーネントで@Inputを使用することです。親コンポーネントは、残りのサービスからデータをフェッチするたびに、これらの入力に関連付けられた値を更新するだけです。

関連する問題