2 votes

Comment trier les objets filtrés dans les options de la liste déroulante en angularjs ?

Dans un objet json, j'ai filtré les produits en double et obtenu un tableau pour créer une liste déroulante pour la recherche.

$scope.value =[{"Product":"Table","Country":"United States","id":"17619"},{"Product":"Chair","Country":"Pakistan","id":"17618"},{"Product":"Keyboard","Country":"Pakistan","id":"17617"},{"Product":"Chair","Country":"Pakistan","id":"17615"}]

J'ai filtré les produits en double et j'ai obtenu un tableau avec cette méthode.

$scope.getProduct = function(){return ($scope.values || []).map(function(w){return w.Product;}).filter(function(w,idx,arr){return arr.indexOf(w)===idx;});};

Il renvoie les tableaux, les caractères et les claviers sous forme de tableau, ce que j'ai utilisé dans dorpdonw par la fonction getProduct() de cette manière.

<select ng-model="product"><option ng-repeat="p in getProduct()" ng-model="filter[p]">{{p}}</option></select>

Mais je veux une sortie sous forme triée comme Char, Keyboard, Table. Comment puis-je trier le tableau retourné par getProduct() ?

1voto

NTP Points 3393

Vous pouvez utiliser le filtre orderBy d'angularjs pour y parvenir.

<select ng-model="product"><option ng-repeat="p in getProduct() | orderBy" ng-model="filter[p]">{{p}}</option></select>

Démo

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