2017-10-21 84 views
0

我希望我的页面显示2个选项卡,每个选项卡都将包含一个表。 由于表的结构相同,我为表创建了一个自定义组件,并将其用作子组件。 父页面:Angular2:在父级中使用两个相同的子组件

<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 
} 

的问题是,该表被更新(ngOnChanges叫法),只有当变量1被改变,而不是当变量2被改变。为什么? 另外,当变量1的ngOnChanges被执行时,表2也被更新了。 那么问题是什么?我希望每张桌子都是独立的,我怎么能做到这一点?

在此先感谢。

+0

'[items] =>“variable1”'是一个可能的罪魁祸首,如果它在你的实际代码中 –

回答

0

问题1:

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

这里应该[项目] = “变量1”。

问题2:

如果以上错误是您输入错误。 正如你在这里使用的primeng选项卡来显示两个表,使用一个布尔值来显示/隐藏基于标签点击的数据表。这段代码不会导致任何问题。

<p-tabPanel> 
    <cutomComp #table1 *ngIf="showTable1" [items]="variable1"</customComp> 
</<p-tabPanel> 
<p-tabPanel> 
    <cutomComp #table2 *ngIf="showTable2" [items]="variable2"></customComp> 
</<p-tabPanel> 
相关问题