2017-05-18 1 views
1

Ich habe eine verschachtelte Liste mit mehreren Ebenen und bei onDropSuccess möchte ich alle übergeordneten Indizes einschließlich der, auf die ich das Element ablege, an die Funktion onDropSuccess übergeben. Ich möchte also listitem, rowitem und cellitem übergeben. Wie kann ich das tun, damit ich die Funktion in allen verschachtelten Kindern wiederverwenden kann?Angular 2, gibt es einen Weg über eventliseners, um alle Elternschleifenindizes zu übergeben?

<div * 
ngFor="let tableitem of table; let listitem = index" 
(onDropSuccess)="onDropSuccess($event, passAllIndexAboveIncludingThisOne)" 
> 
<div *ngFor="let rowitem of tableitem.rowitem; let rowitem = index" 
(onDropSuccess)="onDropSuccess($event, passAllIndexAboveIncludingThisOne)" 
> 
<div *ngFor="let cell of rowitem.cell; let cellitem = index" 
(onDropSuccess)="onDropSuccess($event, passAllIndexAboveIncludingThisOne)" 
> 

Something data here 
</div></div></div> 

Antwort

1

So etwas sollte funktionieren. Ich habe gerade alle Indizes umbenannt, es gab einige Duplizierungen zwischen der ersten Variablen nach let und der Variablen, in der Sie Ihre Indizes beeinflusst haben. Dann denke ich, du kannst selbst sehen, ich benutze Standard-Array, um die Variablen an die Funktion zu übergeben.

<div *ngFor="let tableitem of table; let indexItem = index" (onDropSuccess)="onDropSuccess($event, indexItem)"> 
    <div *ngFor="let rowitem of tableitem.rowitem; let indexRow = index" (onDropSuccess)="onDropSuccess($event, [indexItem, indexRow])"> 
    <div *ngFor="let cell of rowitem.cell; let indexCell = index" (onDropSuccess)="onDropSuccess($event, [indexItem, indexRow, indexCell])" > 
     Something data here 
    </div> 
    </div> 
</div> 

Und Sie können die onDropSuccess wie folgt verwenden:

onDropSuccess(event, datas) { 
    console.log(event, datas); 
} 
Verwandte Themen