9

有这样的数组:

month: Array[13]0: "M"1: "January"2: "February"3: "March"4: "April"5: "May"6: "June"7: "July"8: "August"9: "September"10: "October"11: "November"12: "December"

我愿意:

ng-options="key as value for (key, value) in data.month | orderBy:key"

但我得到未排序的选择列表。

4

3 回答 3

15

为了使用带有过滤器的跟踪,请使用track by.

标记

ng-options="key as value for (key, value) in data.month | orderBy:'key' track by key"

更新

orderBy永远不会起作用,因为您有文字数组。您需要将此数组转换为类似 JSON 的对象,该对象的结构类似于[{id: 0, value: "M"}, {id: 1, value: "January"},......]

HTML

ng-options="item.id as item.value for items in data.month | orderBy:'id'"

演示 Plunkr

于 2015-06-03T13:10:33.270 回答
2

你缺少两个'。这部分,orderBy: key应该是orderBy:'key'

尝试这个:

ng-options="key as value for (key, value) in data.month | orderBy: 'key'"
于 2015-06-03T13:12:19.043 回答
1

要解决此问题,需要重新格式化ng-option,如:

day.id as day.value for day in data.month

数组data.month将是告诉用户的方式pankajparkar

于 2015-06-03T15:05:10.690 回答