您好我有一个简单的ng-repeat-start和end用例,工作得很好,当我想添加内部ng-repeat时会出现问题。 这是我的代码
<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>
内部ng-repeat到td元素不起作用,当我检查html源代码时,我看到了ngRepeat注释,但是没有创建td元素。
<!-- ngRepeat: e in obj.row -->
我丑陋的解决方法(假设我知道该向量的大小)是:
<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>
答案 0 :(得分:18)
我不确定您是否使用了角度1.1.6,因为ng-repeat-start
和ng-repeat-end
在1.1.5或1.0.7中不可用。
但是,您实际上不必使用新指令来实现这一点。您现在可以像这样简单地实现它:
<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>
当AngularJS 1.1.6版本正式发布时,您可以使用ng-repeat-start
和ng-repeat-end
重新实现它。
的 Demo 强>
答案 1 :(得分:2)
我认为您的数据结构可能有问题。使用Angular 1.2.1 这对我有用
<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>
请参阅jsFiddle
答案 2 :(得分:1)
您应该能够使用基于索引的迭代来绕过它:
<tr ng-repeat-start="obj in rows" >
<td ng-repeat="e in obj.row">{{obj.row[$index]}}</td>
</tr>
<tr ng-repeat-end>
<!-- ... -->