我试图实现与下面的弹簧代码相同的行为:
<c:forEach items="${data}" var="data" varStatus="contador">
<c:if test="${(contador.count-1)%3==0}">
<div class="conjunto-${conjunto} row"> <!-- Show opening div -->
</c:if>
<!-- Some HTML goes here -->
<c:if test="${((contador.count-1)%3==2)}">
</div>
</c:if>
</c:forEach>
解释:只有在添加了3个其他HTML元素之后,才需要来自类row
的新div。
我用ng-if
尝试了这个,就像这样:
<div ng-repeat="data in DATA">
<div class="conjunto-{{$index/3}} row" ng-show="$index % 3 == 0" ng-include="'html.html'">
</div>
<div ng-show="$index % 3 != 0" ng-include="'html.html'">
</div>
</div>
但它显然不起作用,因为只有一个元素位于de div.row内。
是否有一个if子句,我只能添加开头的div然后再关闭它?
提前致谢。
答案 0 :(得分:0)
好的,这样做的最佳方法IMO是2倍,在您的控制器中有一个类似于此的方法
$scope.createDataChunks = function() {
var a = $scope.DATA,
retArr = [];
while(a.length) {
retArr.push(a.splice(0,3));
}
return retArr;
}
这将为您提供一个数组数组,每个数组包含3个(或更少)项目,然后将其作为标记
<div ng-repeat="data in createDataChunks()">
<div class="conjunto-{{$index/3}} row" ng-show="$index % 3 == 0" ng-include="'html.html'">
<!-- put custom HTML here -->
</div>
</div>
我认为这大致是你追求的目标?