在使用ng-repeat
进行迭代时,有没有办法可以跳过一定数量的项?
例如,让我们说我有这个数组:
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
有没有办法像
那样做<div ng-repeat="i in arr">
<div ng-if="i == 3" ng-skip="10">{{i}}</div></br>
</div>
所以输出将是:
1
2
13
14
15
ng-if
不会执行3
到12
的值。
在这里明确,我要求的是进行某种修改是迭代器的行为。
编辑:
让我进一步澄清。
我要求等同于
for (i = 0; i < arr.length; i++) {
if (arr[i].should_skip_items == true) {
i += arr[i].number_of_items_to_skip;
} else {
//do stuff...
}
}
答案 0 :(得分:0)
您可以使用$index
和ngSwitch
,如下所示:
//skip one item
<div ng-repeat="i in arr" ng-switch="$index % 2 === 0">
<div ng-switch-when="true">{{i}}</div></br>
</div>
所以,这里发生的是,如果$index % 2 === 0
,即,iterable是偶数索引,它将被显示。
答案 1 :(得分:0)
试试这个......
ng-repeat="i in arr track by $index" ng-if="$index < 2 || $index > 11"
并从内部DIV元素中删除ng-if
和ng-switch
。
答案 2 :(得分:0)
这个怎么样?
ng-if="arr.slice(arr.indexOf(3), arr.indexOf(3)+10).indexOf(i) === -1"