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.
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"; });
Pour quiconque veut sortinger la variable en troisième couche:
vous pouvez le faire comme ça