Hallo, ich habe einen einfachen Anwendungsfall für ng-repeat-start und ende und funktioniert einwandfrei. Das Problem tritt auf, wenn ich eine innere ng-repeat hinzufügen möchte. Hier ist der Code
<tr ng-repeat-start="obj in rows" >
<td ng-repeat="e in obj.row">{{e}}</td>
</tr>
<tr ng-repeat-end>
<td colspan="4">{{obj.description}}</td>
<tr>
Das innere ng-repeat im td-Element funktioniert nicht. Ich sehe den ngRepeat-Kommentar, wenn ich den HTML-Quellcode inspiziere, aber die td-Elemente werden nicht erstellt.
<!-- ngRepeat: e in obj.row -->
Mein hässlicher Workaround (vorausgesetzt ich kenne die Größe dieses Vektors) ist:
<tr ng-repeat-start="obj in rows" >
<td>{{obj.row[0]}}</td>
<td>{{obj.row[1]}}</td>
<td>{{obj.row[2]}}</td>
<td>{{obj.row[3]}}</td>
</tr>
<tr ng-repeat-end>
<td colspan="4">{{obj.description}}</td>
<tr>
Ich bin nicht sicher, ob Sie Angular 1.1.6 verwenden oder nicht, da ng-repeat-start
und ng-repeat-end
in 1.1.5 oder 1.0.7 noch nicht verfügbar sind.
Sie müssen jedoch nicht die neuen Richtlinien verwenden, um dies zu erreichen. Sie können es jetzt einfach so implementieren:
<table>
<tbody ng-repeat="obj in rows">
<tr ng-repeat="e in obj.row">
<td>{{e}}</td>
</tr>
<tr>
<td colspan="4">{{obj.description}}</td>
<tr>
</tbody>
</table>
Sie können ng-repeat-start
und ng-repeat-end
verwenden, um es erneut zu implementieren, wenn AngularJS 1.1.6 offiziell freigegeben wird.
Ich denke, es könnte etwas an Ihrer Datenstruktur sein. Mit Angular 1.2.1 funktioniert das für mich
<div ng-app="myApp" ng-controller="myCtrl">
<div class="h" ng-repeat-start="val in data">{{val.title}}</div>
<div ng-repeat="con in val.content">
{{con}}
</div>
<div class="b" ng-repeat-end>footer</div>
</div>
Siehe jsFiddle
Sie sollten indexbasierte Iterationen verwenden können, um das zu umgehen:
<tr ng-repeat-start="obj in rows" >
<td ng-repeat="e in obj.row">{{obj.row[$index]}}</td>
</tr>
<tr ng-repeat-end>
<!-- ... -->