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>

しかし、div.row 内にある要素が 1 つだけであるため、明らかに機能しません。

最初のdivのみを追加して後で閉じることができるif句はありますか?

前もって感謝します。

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 に答える