我有选项对象数组的下拉列表:
<select class="auc-form-control" ng-options="dataValue.Id as dataValue.Name for (dataKey, dataValue) in Types" ng-model="name">
</select>
选项按ID排序:
<option value="0">0</option>
<option value="1">1</option>
<option value="10">10</option>
<option value="11">11</option>
...
如何以自然的方式对选项进行排序? [1,2,3,...]
答案 0 :(得分:2)
您的Id
属性似乎是字符串(而不是数字)。
在这种情况下,您必须使用自定义getter来获取排序值。例如:
$scope.getSortValue = function (item) {
return +item.Id; // convert string to number
};
然后将其与orderBy
过滤器一起使用,如下所示:
<select class="auc-form-control" ng-options="dataValue.Id as dataValue.Name for (dataKey, dataValue) in Types | orderBy:getSortValue" ng-model="name"></select>
示例Plunker: http://plnkr.co/edit/TfVrfhaiuBKbPpHSqp4Q?p=preview
答案 1 :(得分:1)
如何使用orderBy过滤器:
"ng-options="dataValue.Id as dataValue.Name for (dataKey, dataValue) in Types" | orderBy:'Id'"
请在示例中看到 JSFiddle 。