我似乎无法正确显示月份,10 月总是在 1 月之后,因为它的值是 10 ......我假设在某些排序中它小于 2。这是代码的小提琴:
<select ng-model="month" ng-options="key as value for (key,value) in months"></select>
对于那些我无法让美国作为第二个条目出现的国家,我遇到了同样的问题,因为它会进行自己的疯狂排序。
任何帮助表示赞赏。
我似乎无法正确显示月份,10 月总是在 1 月之后,因为它的值是 10 ......我假设在某些排序中它小于 2。这是代码的小提琴:
<select ng-model="month" ng-options="key as value for (key,value) in months"></select>
对于那些我无法让美国作为第二个条目出现的国家,我遇到了同样的问题,因为它会进行自己的疯狂排序。
任何帮助表示赞赏。
对对象使用 ng-options 只是在对象属性上进行迭代,这些属性不能保证按任何顺序排列。如果您可以将其更改为数组,则可以保证它们按指定的顺序排列。更新了小提琴。然后选择看起来像这样:
<select ng-model="month" ng-options="currMonth for currMonth in months"></select>
如果您需要为 ng-model 保留相同的值,您还可以拥有一个键/值对数组。看到这个小提琴 然后选择看起来像这样:
<select ng-model="month" ng-options="currMonth.key as currMonth.value for currMonth in months"></select>
试试我在 AngularJS 选择文档中评论的这个解决方法。
使用months.indexOf(m) 作为选择值。
<select ng-model="monthIndex" ng-options="months.indexOf(m) as m for m in months"></select>
这样,您可以使用简单的字符串数组作为源,并使用所选索引更新 ng-model。
在这里试试:jsbin