跳过ng-repeat中的项目(不是ng-if)

时间:2016-02-05 10:56:22

标签: javascript angularjs

在使用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不会执行312的值。

在这里明确,我要求的是进行某种修改是迭代器的行为。

编辑:

让我进一步澄清。

我要求等同于

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

3 个答案:

答案 0 :(得分:0)

您可以使用$indexngSwitch,如下所示:

//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-ifng-switch

答案 2 :(得分:0)

这个怎么样?

ng-if="arr.slice(arr.indexOf(3), arr.indexOf(3)+10).indexOf(i) === -1"