我有这个对象:
{
"EG": "Egypt",
"EH": "Western Sahara",
"ER": "Eritrea",
"ES": "Spain",
"ET": "Ethiopia",
"FI": "Finland"
}
我有这个ng-repeat:
<md-option ng-repeat="(code, country) in data.countries" value="{{code}}">{{country}}</md-option>
我想按国家名称排序,而不是按当前排序的代码排序。有什么想法吗?
答案 0 :(得分:2)
orderBy更好的对象,键和值数组。
尝试过滤器方式:
的javascript:
var app = angular.module('myapp',[]);
app.filter('orderObjectBy', function(){
return function(input, attribute) {
if (!angular.isObject(input)) return input;
var array = [];
for(var key in input) {
array.push(input[key]);
}
array.sort(function(a, b){
if(a < b) return -1;
if(a > b) return 1;
return 0;
});
return array;
}
});
HTML:
<md-option ng-repeat="(code, country) in itemObjects | orderObjectBy:'country'" value="{{code}}">{{country}}</md-option>
玩得开心。