2014-03-25 14 views
7

Ich habe eine ng-Wiederholung innerhalb einer ng-Wiederholung. Ich tyring den Index auf beiden Ebenen zu erhalten, aber ich bin nicht in der Lage zu:Wie man den Index in verschachtelten ng-Wiederholungen erhält

<tbody> 
    <tr ng-repeat="element in body"> 
     <td ng-repeat="h in header" style="width:{{h.width}}px"> 
     <div col="{{$parent.$parent.$index}}" row="{{$parent.$index}}">{{element[h.column]}}</div> 
     <td> 
    </tr> 
    </tbody> 

hier ist ein plnkr auch. http://plnkr.co/edit/dGoN43HzQefVpCsp2R3j

Der PROBLEM ist, dass der Wert von "col" nie ausgefüllt wird. Es erfasst den Index nicht. Kann jemand

+0

tun Sie äußerten Schleifenindex bis Spalte und inneren Schleifenindex rudern setzen? –

Antwort

12

Sie unterstützen müssen $parent nicht verwenden, nur $indexIndex der inneren Schleife und indexOf() Funktion von Array benutzen Sie verwenden Index der äußeren Schleife ...

zu bekommen HTML

<tr ng-repeat="element in body"> 
    <td ng-repeat="h in header" style="width:{{h.width}}px"> 
    <div col="{{body.indexOf(element)}}" row="{{$index}}">{{element[h.column]}}</div> 
    <td> 
</tr> 

UPDATE

Eigentlich ng-init mit würde viel besser Index der äußeren Schleife zu bekommen ... hier Sie leicht rowIndex zu aktuellen Index an jeder Ecke setzen und es in der inneren Schleife verwenden ...

<tbody> 
    <tr ng-repeat="element in body" ng-init="rowIndex = $index"> 
     <td ng-repeat="h in header" style="width:{{h.width}}px"> 
     <div col="{{$index}}" row="{{rowIndex}}">{{element[h.column]}}</div> 
     <td> 
    </tr> 
    </tbody> 

hier aktualisiert PLUNKER

+0

Könnten Sie bitte vorschlagen, wie ich dasselbe erreichen kann, wenn ich die äußere Schleifenliste von einem Funktionsaufruf wie – SoftEngi

+0

@SoftwareEngi es sollte gleich sein. Warum denkst du, dass es anders sein sollte als das oder was genau ist dein Problem? –

Verwandte Themen