Tri par ordre alphabétique dans AngularJS

Je remplis une liste déroulante grâce à l’utilisation de ng-options, qui est connectée à un contrôleur qui à son tour appelle un service. Malheureusement, les données entrantes sont en désordre et je dois pouvoir les classer par ordre alphabétique.

Vous pensez que quelque chose comme $.sortBy ferait, mais malheureusement il n’a pas fait de jack. Je sais que je peux le sortinger via javascript avec une function asc(a,b) auxiliaire function asc(a,b) ou quelque chose comme ça, mais je refuse de croire . C’est quelque chose de si fondamental en principe, donc je ne comprends pas pourquoi AngularJS ne l’a pas.

Est-il possible de faire quelque chose comme $orderBy('asc') ?

Exemple:

  

Il serait extrêmement utile d’avoir des options dans orderBy pour pouvoir faire ce que vous voulez, chaque fois que vous essayez de sortinger les données.

Angular a un filtre orderBy qui peut être utilisé comme ceci:

  

Voir ce violon pour un exemple.

Il est à noter que si track by est utilisé, il doit apparaître après le filtre orderBy , comme ceci:

  

Vous devriez pouvoir utiliser le filtre: orderBy

orderBy peut accepter une troisième option pour le drapeau reverse .

  

Ici, l’élément est sortingé par la propriété ‘name’ dans un ordre inversé. Le 2ème argument peut être n’importe quelle fonction d’ordre, vous pouvez donc sortinger n’importe quelle règle.

@ voir http://docs.angularjs.org/api/ng.filter:orderBy

 var module = angular.module("example", []); module.controller("orderByController", function ($scope) { $scope.orderByValue = function (value) { return value; }; $scope.items = ["c", "b", "a"]; $scope.objList = [ { "name": "c" }, { "name": "b" }, { "name": "a" }]; $scope.item = "b"; }); 

http://jsfiddle.net/Nfv42/65/

Pour quiconque veut sortinger la variable en troisième couche:

  

vous pouvez le faire comme ça