2017-09-14 50 views
0

我有一个组分与* ngFor打印在其他组件中定义的一些像这样的盒子,其中:通行证数据角2

<div> 
<commponentB *ngFor="let a of list"></componentB> 
</div> 

其中“列表”是这样的列表确定对象:

this.list=[{"id":"3","nome":"app3","posizione":3},{"id":"1","nome":"app1","posizione":1},{"id":"2","nome":"app2","posizione":2}]; 

我必须填充所有组件。我怎样才能从这两个组件传输数据?

TY

EDIT1:

的问题是,该列表分裂成2列表重复在2分不同的自举列这样的情况是这样的:

<div> 
<commponentB *ngFor="let a of list1"></componentB> 
</div> 
<div> 
<commponentB *ngFor="let a of list2"></componentB> 
</div> 

和组件是这样的:

<div> 
<span>{{name}}</span> 
</div> 

如果我通过所有的列表我不知道如何将组件置于正确的位置(对不起,如果我没有很好地解释问题)

回答

0

由于组件是直接链接的,因此可以使用@Input()组件交互将数据从父项发送到子项。

这里是从官方文档的链接:

https://angular.io/guide/component-interaction#pass-data-from-parent-to-child-with-input-binding


如果你不能做到这一点的模型,因为路由器的互动,或组件太“远”离那么它太许多工作可以设置多个输入,您可以使用共享服务将数据从一个组件共享到另一个组件。

https://angular.io/guide/component-interaction#parent-and-children-communicate-via-a-service

+0

我试着像你说的,但问题有点不同 – Daveus

0
,如果你想通过你的清单以componentB你可以以componentB定义输入()属性,然后通过你的列表

<div> 
<commponentB [list]="list"></componentB> 
</div> 

export class ComponentB{ 

@Input() list: any[]; 

} 

更新

好吧,也许我没有得到你的问题,即使你必须通过不同的输入到相同的组件,你可以做到这一点。看看这plunker

+0

我试着像你说的,但问题是有点不同 – Daveus