orderBy deux champs (un en sens inverse)

Je voudrais commander une liste d’amis par statut (en ligne, en différé) et par ordre alphabétique. Tout ce que je réussis à obtenir c’est:

  • Premières en ligne / Ordre alphabétique inversé
  • Ou premiers déconnectés / Ordre alphabétique

Voici plunker pour exposer mon problème

Changez le filtre orderBy en ceci:

 orderBy:['-status','name'] 

Cela ordonnera par statut décroissant (en préfixant le caractère - ), puis nom croissant. Actuellement, vous passez la valeur true pour inverser le sorting, ce qui entraîne la correction du statut (en ligne en premier), mais les noms doivent être inversés (c.-à-d. Décroissants).

Si vous voulez conserver le booléen inversé, vous pouvez utiliser orderBy:['status','-name']:true mais cela semble moins clair que de simplement rendre le status descendant comme indiqué précédemment.

Il existe une autre option pour faire cela, vous pouvez avoir plusieurs ordre orderBy filter dans ng-repeat et cette ligne:

 
  • sera :

     
  • Le dernier ordre est exécuté en premier et le second en dernier, etc.

    Voici mon plunkr: http://plnkr.co/edit/girPFzdi3Zx0yp0ASGVQ?p=preview

    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 du précédent orderBy soit appliquée au suivant, donc pour sortinger le nom ASC et le statut DESC, l’ordre des noms doit être revu:

     
  • Voici un exemple fixe: http://plnkr.co/edit/0ZFIftSgNkU9F03xJztG?p=preview