如何在AngularJS中对动态选择列表进行排序

时间:2017-01-20 21:13:38

标签: angularjs

我在AngularJS单页面应用程序中有一个页面,它通过读取有关表结构的元数据来显示数据库中多个表的数据。当字段是对外键的查找时,它会自动创建一个选择下拉列表。一切正常,但我无法按名称排序。它按主键ID字段排序,通常是int类型。下面是控制器脚本,它加载模型中的选项列表和显示选择控件并尝试对项目进行排序的视图脚本。你能告诉我如何重做它以便它可以工作吗?我也试过在orderBy子句中使用和不使用单引号,我尝试在orderby子句中使用toString(),但没有任何效果。



// controller script
var responseData = responseFK.data;
angular.forEach(responseData, function (item)
{
    columnOptions = columnOptions.concat({ "ID": item[columnNameFK], "Name": item[columnNameFK_Name] });
});
column.COLUMN_OPTIONS = columnOptions;

// view script
<select ng-switch-when="select" ng-options="item.ID as item.Name for item in x.COLUMN_OPTIONS | orderBy: 'item.Name'" ng-model="x.COLUMN_VALUE" ng-required="x.REQUIRED" required></select>
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.10/angular.min.js"></script>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

尝试使用orderBy:'Name',只是没有item的属性名称。所以你的视图脚本现在应该是:

<select ng-switch-when="select" ng-options="item.ID as item.Name for item in x.COLUMN_OPTIONS | orderBy: 'Name'" ng-model="x.COLUMN_VALUE" ng-required="x.REQUIRED" required></select>