2017-10-21 30 views
0

私のページに2つのタブを表示したい場合は、それぞれにテーブルが含まれます。 テーブルの構造は同じなので、テーブルのカスタムコンポーネントを作成し、それを子コンポーネントとして使用しました。 親ページ:Angular2:親に2つの同じ子コンポーネントを使用する

<p-tabPanel> 
    <cutomComp #table1 [items]=>"variable1"</customComp> 
</<p-tabPanel> 
<p-tabPanel> 
    <cutomComp #table2 [items]="variable2"></customComp> 
</<p-tabPanel> 

私のカスタムコンポーネント:

<p-dataTable [value]="itemsForTable"> 
</p-dataTable> 

ngOnChanges(changes: SimpleChanges){ 
    //init itemsForTable from items 
} 

問題は変数2が変更されたときに変数1に変更し、されていない場合にのみ、(ngOnChangesが呼び出された)テーブルが更新されていることです。どうして? また、table2よりもvariable1に対してngOnChangesが実行されたときにも更新されました。 それで問題は何ですか?私はそれぞれのテーブルを独立させたいのですが、どのように達成できますか?

ありがとうございます。

+0

'[items] =>" variable1 "'は実際のコードのようなものである可能性が高いです –

答えて

0

問題1:ここ

<cutomComp #table1 **[items]=>"variable1"**</customComp> 

それは、[アイテム] = "変数1" である必要があります。

問題2:

上記の内容が誤って入力されていると間違っています。 ここでprimengタブを使用して2つのテーブルを表示していたので、タブクリックに基づいてデータテーブルを表示/非表示にするにはブール値を1つ使用します。このコードでは問題は発生しません。

<p-tabPanel> 
    <cutomComp #table1 *ngIf="showTable1" [items]="variable1"</customComp> 
</<p-tabPanel> 
<p-tabPanel> 
    <cutomComp #table2 *ngIf="showTable2" [items]="variable2"></customComp> 
</<p-tabPanel> 
関連する問題