2017-09-14 47 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