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

Skipping items in ng-repeat (not ng-if)

本文关键字:项目 ng-if ng-repeat 不是 跳过      更新时间:2023-09-26

没有办法在使用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

并且不会为从 312 的值执行ng-if

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

编辑:

让我进一步澄清。

我要求相当于

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...
    }
}
您可以使用

$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,即可迭代对象是一个偶数索引,它将被显示出来。

这个怎么样?

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

试试这个...

  ng-repeat="i in arr track by $index" ng-if="$index < 2 || $index > 11"

并从内部 DIV 元件中移除ng-ifng-switch