231 votes

ng-répétition angulaire en sens inverse

Comment puis-je obtenir un tableau inversé dans angulaire ? Je suis en train d’utiliser le filtre orderBy, mais il a besoin d’un attribut (par exemple « nom ») à trier :

Y a-t-il un moyen d’inverser le tableau d’origine, sans tri. Comme ça :

333voto

Trevor Senior Points 4901

Je voudrais suggérer à l'aide d'un filtre personnalisé comme ceci:

app.filter('reverse', function() {
  return function(items) {
    return items.slice().reverse();
  };
});

Qui peut alors être utilisé comme:

<div ng-repeat="friend in friends | reverse">{{friend.name}}</div>

Le voir travailler ici: Plunker de Démonstration


Ce filtre peut être personnalisé pour répondre à vos besoins en tant que juge. J'ai fourni d'autres exemples dans la démonstration. Certaines options comprennent la vérification que la variable est un tableau avant d'effectuer l'inverse, ou les rendre plus indulgent pour permettre la reprise de plus en plus de choses comme des cordes.

208voto

amit bakle Points 331

C’est ce que j’ai utilisé :

124voto

Dmitry Gonchar Points 106

Désolé d'avoir cette place après une année, mais il y a une solution plus facile, mentionné dans les docs:

"Si aucune propriété n'est fournie (par exemple,'+'), alors l'élément du tableau lui-même est utilisé pour comparer les différences de tri". Donc, la solution sera:

ng-repeat="friend in friends | orderBy:'+':true"

Notez que cela fonctionne seulement dans Angulaire v1.3 et ultérieure.

Cette solution ne permet pas de modifier le tableau et n'a pas besoin d'autres ressources de calcul (au moins dans notre code). J'ai lu toutes les réponses existantes et préfèrent encore cette un.

54voto

jjhrms Points 179

Vous pouvez inverser par le paramètre $index

17voto

Anders Ekdahl Points 5678

Vous pouvez simplement appeler une méthode sur votre lunette pour inverser la tendance pour vous, comme ceci :

Notez que les crée une copie du tableau depuis modifie le tableau d’origine.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X