如何按键对ng-options中的数组进行排序?

Fau*_*aud 8 javascript select angularjs angularjs-filter angularjs-ng-options

有这样的数组:

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"
Run Code Online (Sandbox Code Playgroud)

我做:

ng-options="key as value for (key, value) in data.month | orderBy:key"
Run Code Online (Sandbox Code Playgroud)

但我得到未分类的选择列表.

Pan*_*kar 12

为了使用跟踪过滤器使用track by.

标记

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

更新

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'"
Run Code Online (Sandbox Code Playgroud)

演示Plunkr