2

我似乎无法正确显示月份,10 月总是在 1 月之后,因为它的值是 10 ......我假设在某些排序中它小于 2。这是代码的小提琴:

http://jsfiddle.net/naZQA/

<select ng-model="month" ng-options="key as value for (key,value) in months"></select>

对于那些我无法让美国作为第二个条目出现的国家,我遇到了同样的问题,因为它会进行自己的疯狂排序。

任何帮助表示赞赏。

4

3 回答 3

6

对对象使用 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>
于 2013-03-22T23:00:15.903 回答
1

在这个问题中讨论了here。因此,角度不允许使用orderBy简单的哈希,如果不重组数据,您将无法继续进行排序。这是一个改变数据结构的小提琴

更新:更新了小提琴的链接

于 2013-03-22T22:57:58.830 回答
1

试试我在 AngularJS 选择文档中评论的这个解决方法。
使用months.indexOf(m) 作为选择值。

<select ng-model="monthIndex" ng-options="months.indexOf(m) as m for m in months"></select>

这样,您可以使用简单的字符串数组作为源,并使用所选索引更新 ng-model。
在这里试试:jsbin

于 2013-07-17T01:36:48.097 回答