2016-04-25 9 views
2

mit habe ich eine Direktive, die diesem Markup

<tr ng-if="isComplete()" ng-repeat="row in paged.page() track by $index" ng-click="rowClick(row, $event)" ng-class="assignRowClass(row)"> 
    <td ng-repeat="header in headers" ng-bind-html="trustAsHtml(header.formatter(row[header.property], row, $index))"></td> 
</tr> 

Das Problem ist, dass enthält $index ist immer 0, wenn an die header.formatter Funktion übergeben.

+0

können Sie prüfen, versuchen $ parent. $ Index? – Walfrat

+0

ja $ parent. $ Index funktioniert, was überraschend ist. Warum das? – dagda1

Antwort

0

Wie Säge in meinem Kommentar dieses

$parent.$index 

wegen des neuen Anwendungsbereich von ng-if und der Grenze der Vererbung zwischen Umfang in Winkeln erstellt Dies ist funktioniert (wegen Javascript-Beschränkungen).

Sie können entweder für $parent.$index verschieben der ng-if, wenn möglich zum oberen DOM-Element (<thead>/<tbody).

1

versuchen diese

<tr ng-if="isComplete()" ng-repeat="(index,val) in paged.page() track by index" ng-click="rowClick(val, $event)" ng-class="assignRowClass(val)"> 
<td ng-repeat="header in headers" ng-bind-html="trustAsHtml(header.formatter(val[header.property], val, index))"></td>