Javascript 如何在angularjs中对下拉列表进行排序?
我尝试使用angularjs通过下拉菜单进行订购。但是,排序不起作用。请帮帮我。请检查此链接: HTML: 我的Html代码在这里Javascript 如何在angularjs中对下拉列表进行排序?,javascript,angularjs,Javascript,Angularjs,我尝试使用angularjs通过下拉菜单进行订购。但是,排序不起作用。请帮帮我。请检查此链接: HTML: 我的Html代码在这里 <select ng-options="key as value for (key, value) in charityList | orderBy:'value'" ng-model="reportSearch.charityId"> <option value="">All Charity</option> <
<select ng-options="key as value for (key, value) in charityList | orderBy:'value'" ng-model="reportSearch.charityId">
<option value="">All Charity</option>
</select>
请检查此链接:您拥有的是对象而不是数组。数组由V形符号定义
charityList = [
{"name": "softweb charity"},
{"name": "charity 1"},
{"name": "charity update"},
{"name": "Engagement1 Name"},
{"name": "United Way Enagagement"},
{"name": "Indian Noble Charity"}
],
如果你能让它看起来像这样,你可以用orderBy对它进行排序
ng-options="value.name for value in charityList | orderBy:'name'"
这样试试看
控制器:
$scope.sort = function(list) { //returns an array : ["charity 1","charity update","Engagement1 Name","Indian Noble Charity","softweb charity", "United Way Enagagement"]
return $.map(list, function(el) { return el }).sort(function (a, b) {
return a.toLowerCase().localeCompare(b.toLowerCase());
});
}
html:
<select ng-options="value as value for value in sort(charityList)" ng-model="reportSearch.charityId">
<option value="">All Charity</option>
</select>
一切慈善
您必须将对象转换为对象数组,否则orderBy将无法工作
angular.forEach($scope.charityList, function(value, key) {
arr.push({key: key, value: value})
})
钥匙是我的要求..我没有移除钥匙(1,2,3,4,6,7)你能创建你想要实现的目标吗?对不起,伙计,OrderBy只处理数组。检查此项我检查了您的小提琴,但小提琴中的orderBy无法工作,因为根据语法参数,orderBy应该是“对象数组中的属性”,而在您的情况下,charityList是单个“对象”。这就是为什么在我的回答中,我调用函数sort(),它返回一个成对排序的值数组?
angular.forEach($scope.charityList, function(value, key) {
arr.push({key: key, value: value})
})