Подтвердить что ты не робот

Могу ли я фильтровать ng-repeat с $odd или $even свойствами?

Я пытаюсь автоматически фильтровать список ng-repeat по четному индексу. Возможно ли это сделать? Вот что я пытаюсь, но он не работает:

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

Есть ли правильный способ достижения этого?

4b9b3361

Ответ 1

Показывает $even имена списка вещей.

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

Ответ 2

Обновлено:

Или напишите предикатную функцию: Рабочая версия
Документы: 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>

Ответ 3

Так же, как @Humberto, но с условным сравнением

<div ng-repeat="i in [0,1]" class="column_{{ i }}">
  <div ng-repeat="thing in things" ng-if="$even == ( i == 0 )">
    {{thing.name}}
  </div>
</div>

Ответ 4

документация из ng-repeat говорит нам о специальных свойствах, которые мы можем использовать в таком случае. Вы можете использовать:

  • $even → true, если индекс $ позиции итератора четен (в противном случае - false).
  • $odd → true, если индекс $ позиции итератора нечетен (в противном случае - false).

Примеры кода:

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

или

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