【发布时间】:2014-06-05 20:56:09
【问题描述】:
我写了这段代码:
<select required="required" ng-model="category" ng-init="category=''" ng-options="k as v for (k,v) in filter.category"></select>
$scope.filter.region = {
'': 'Все территории',
'1': 'РО',
'2': 'Ростов-на-Дону',
'3': 'Левенцовский',
'4': 'Ворошиловский',
'5': 'Железнодорожный',
'6': 'Кировский',
'7': 'Ленинский',
'8': 'Октябрьский',
'9': 'Первомайский',
'10': 'Пролетарский',
'11': 'Советский'
};
但是 Angular 是按键排序的:
<option value="" selected="selected">Все территории</option>
<option value="1">РО</option>
<option value="10">Пролетарский</option>
<option value="11">Советский</option>
<option value="2">Ростов-на-Дону</option>
<option value="3">Левенцовский</option>
<option value="4">Ворошиловский</option>
<option value="5">Железнодорожный</option>
<option value="6">Кировский</option>
<option value="7">Ленинский</option>
<option value="8">Октябрьский</option>
<option value="9">Первомайский</option>
我该如何解决这个问题? PS:我必须使用 ng-options 的这个签名,因为我的值可以是符号的。
【问题讨论】:
-
你能用一个普通的数组代替散列和你自己的键吗?像这样:
$scope.filter.region = ['Все территории', 'РО', ...] -
不,我不能。因为我的选项的值可以是象征性的,或者不是从 1 开始的。
-
如果您想按数字顺序订购,还可以再加一个stackoverflow.com/questions/24029265/…
标签: javascript angularjs