3

我正在尝试实现与下面的弹簧代码相同的行为:

<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>

row解释:只有在添加了 3 个其他 HTML 元素之后,我才想要一个新的类 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,然后稍后关闭它?

提前致谢。

4

1 回答 1

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>

我想这大致就是你所追求的?

于 2014-11-21T11:47:38.530 回答