Je souhaite commander une liste d'amis par statut (premières en ligne, dernières hors ligne) et par ordre alphabétique Tout ce que je réussis à obtenir, c'est:
Voici plunker pour exposer mon problème
Remplacez le filtre orderBy
par ceci:
orderBy:['-status','name']
Cela ordonnera par statut décroissant (en préfixant le caractère -
), puis par nom croissant. Actuellement, vous passez true
pour inverser le tri, ce qui rend le statut correct (en ligne en premier), mais les noms sont inversés (c'est-à-dire, décroissant).
Si vous souhaitez conserver le booléen inversé, vous pouvez utiliser orderBy:['status','-name']:true
, mais cela semble moins clair que de simplement rendre status
décroissant, comme indiqué précédemment.
Dans Angular 1.5.8, l'exemple précédent ne fonctionne pas . Une logique différente doit être appliquée.
Il semble que la logique de orderBy précédente soit appliquée à la suivante. Par conséquent, pour trier le nom ASC et le statut DESC, l'ordre des noms doit être respecté:
<li class="friend" ng-repeat="friend in friends | orderBy:'name':true | orderBy:'status':true">
Voici l'exemple fixé: http://plnkr.co/edit/0ZFIftSgNkU9F03xJztG?p=preview
Il existe une autre option, vous pouvez avoir plusieurs filtres orderBy dans ng-repeat et cette ligne:
<li class="friend" ng-repeat="friend in friends | orderBy:['status','name']:true">
sera :
<li class="friend" ng-repeat="friend in friends | orderBy:'name':false | orderBy:'status':true">
Le dernier ordrePar est exécuté en premier et le dernier en dernier, etc ...
Voici mon plunkr: http://plnkr.co/edit/girPFzdi3Zx0yp0ASGVQ?p=preview