如何在angularjs的下拉选项中对过滤的对象进行排序

时间:2019-02-22 07:19:43

标签: arrays angularjs sorting

在json对象中,我过滤了重复的产品,并获得了用于创建dropdone进行搜索的数组。

$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"}]

我过滤了重复的产品并通过此方法获取数组

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

它返回Table,Char,Keyboard作为数组。我通过getProduct()函数在dorpdonw中使用的方式

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

但是我想要以Char,Keyboard,Table之类的排序形式输出。 如何通过getProduct()对数组返回值进行排序

1 个答案:

答案 0 :(得分:1)

您可以使用angularjs的orderBy过滤器来实现。

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

Demo