如何在 angularjs 中对下拉列表进行排序
How to sort dropdown in angularjs?
我尝试使用angularjs通过下拉列表进行排序。 但是,排序不起作用。请帮助我。请检查此链接: jsfiddle
.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>
JSON 数组:我的 Json "键=>值"数组,用于使用下拉列表
$scope.charityList = {
"1": "softweb charity",
"2": "charity 1",
"3": "charity update",
"4": "Engagement1 Name",
"6": "United Way Enagagement",
"7": "Indian Noble Charity"
}
请检查此链接: jsfiddle
你拥有的是一个对象而不是数组。数组由 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})
})
琴师
相关文章:
- 使用选项组对下拉列表进行排序
- 如何在角度js的自动完成下拉列表中对项目列表(按字母顺序)进行排序
- 选择下拉列表时,按角度中的多个字段排序
- 对添加的 atrribute 或 id 的下拉列表进行排序
- Jquery 对表行中的下拉列表进行排序
- 如何在 angularjs 中对下拉列表进行排序
- yii 使用下拉列表对 CListView 进行排序
- 使用下拉列表选择对列表.js中的项目进行排序
- 排序下拉列表
- 如何使用下拉列表根据DateTransaction对其进行排序?
- 如何显示带有排序的下拉列表的页面
- 根据下拉列表的内容进行排序
- 为什么这个下拉列表的排序工作在Internet Explorer,而不是在Chrome
- 用javascript排序下拉列表
- 另一种排序JSON文件的方法,或者至少是使用javascript的下拉列表
- 将下拉列表与可单击的排序列表相结合
- 按字母顺序排序php/html表单中的下拉列表值
- 在javascript中按值而不是文本对选择下拉列表进行排序
- 排序语言的下拉列表为本地化Chrome扩展
- 如何从客户端(Javascript)重新排序下拉列表控件,如NetFlix队列