我可以使用$ odd或$ even属性过滤ng-repeat吗?

时间:2013-12-20 01:28:25

标签: javascript angularjs angularjs-directive

我想尝试使用偶数索引自动过滤ng-repeat列表。有可能以某种方式这样做吗?这是我正在尝试但它无法正常工作:

<div data-ng-repeat="thing in things | filter:$even" >
     <div>{{thing.name}}</div>
</div>

有没有正确的方法来实现这一目标?

4 个答案:

答案 0 :(得分:45)

这将显示事物列表的$ even名称。

<div ng-repeat="thing in things" ng-if="$even">
    {{thing.name}}
</div>

答案 1 :(得分:6)

已更新:

或编写谓词函数: Working exmaple
文件:ngRepeat

HTML:

<div data-ng-repeat="thing in things | filter:filterEvenStartFrom(0)">
    <div>{{thing.name}}}</div>
</div>

JS:

$scope.filterEvenStartFrom = function (index) {
    return function (item) {
        return index++ % 2 == 1;
    };
};

<强>原始

这个怎么样:

<div data-ng-repeat="thing in things" ng-hide="$even">
     <div>{{thing.name}}}</div>
</div>

答案 2 :(得分:0)

就像@Humberto但有条件比较

Builder

答案 3 :(得分:0)

IF postalCode >= 1000 and postalCode <= 2000 THEN Contractor1 ELSE postalCode = 2001 THEN Contractor2 ELSE postalCode = 2002 THEN Contractor1 ELSE Contractor2 的{​​{3}}告诉我们在这种情况下可以使用的特殊属性。您可以使用:

  • ng-repeat->如果迭代器位置$ index为偶数,则为true(否则为false)。
  • $even->如果迭代器位置$ index为奇数(否则为false),则为true。

代码示例:

$odd

<div data-ng-repeat="thing in things" ng-if="$even">
     <div>{{thing.name}}</div>
</div>

<div data-ng-repeat="thing in things" ng-if="$odd">
     <div>{{thing.name}}</div>
</div>

<div data-ng-repeat="thing in things" ng-class="{'my-odd-class': $odd}">
     <div>{{thing.name}}</div>
</div>