web-dev-qa-db-fra.com

Puis-je filtrer ng-repeat avec les propriétés $ odd ou $ pair?

J'essaie de filtrer automatiquement une liste ng-repeat par index. Est-il possible de faire cela en quelque sorte? Voici ce que j'essaie mais ça ne marche pas:

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

Y a-t-il un moyen approprié d'y parvenir? 

22
Edgar Martinez

Cela montrera $ même les noms de la liste de choses. 

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

Mis à jour: 

Ou écrivez une fonction de prédicat: Exemple de travail
Docs: 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;
    };
};

Original:

Que dis-tu de ça:

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

Comme @Humberto mais avec une comparaison conditionnelle

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