我似乎无法正常显示月份,10月总是在1月之后,因为它的值为10 ...我假设某种排序中的某种方式小于2.这是代码的小提琴:
<select ng-model="month" ng-options="key as value for (key,value) in months"></select>
我遇到了同样的问题,我无法将美国作为第二个条目出现,因为它会自行疯狂排序。
任何帮助表示感谢。
答案 0 :(得分:6)
对对象使用ng-options只是迭代不保证按任何顺序排列的对象属性。如果您可以将其更改为数组,则保证它们按指定的顺序排列。 Updated fiddle。然后选择如下:
<select ng-model="month" ng-options="currMonth for currMonth in months"></select>
如果您需要为ng-model保留相同的值,您还可以拥有一组键/值对。见this fiddle 然后选择如下:
<select ng-model="month" ng-options="currMonth.key as currMonth.value for currMonth in months"></select>
答案 1 :(得分:1)
答案 2 :(得分:1)
在AngularJS选择文档中尝试此解决方法I commented 使用months.indexOf(m)作为选择值。
<select ng-model="monthIndex" ng-options="months.indexOf(m) as m for m in months"></select>
通过这种方式,您可以使用简单的字符串数组作为源,并使用所选索引更新ng-model 在这里试试:jsbin