AngularJS 从 Java 映射中填充 ng-options 选项。 (排序问题)

AngularJS populating the ng-options options from Java Map. (Sorting issue)

所以我在 Java 中对地图进行了排序,然后使用 new JSONObject(sortedMap); 将其传递到 Java 脚本中。 这已经按值排序。当传入 Java 脚本文件时,如果我将对象悬停在调试模式下,我会看到

$scope.fruitList = {'AP' : 'Apple', 'GP' : 'Grape', 'LM' : 'Lemon'}; 

(对不起,这些愚蠢的名字..只是一个例子)

在此之后,在 html 文件中,

<select ng-model="fruit" ng-options="key as value for (key, value) in fruitList" >
    <option value="">----select----</option>
</select>

因为我想要

<option value="">----select----</option>
<option value="AP">Apple</option>
<option value="GP">Grape</option>
<option value="LM">Lemon</option>

但是不知道为什么,出来的时候顺序乱了。我无法为您提供我的代码的实际输出,因为这里的示例没有。我不知道它是如何被订购的。 我需要将键指定为 ng-model 并显示值。所以我不认为我可以只提取值,对它们进行排序并显示它们。 任何帮助,将不胜感激! :) link 中的顺序是正确的。我不确定为什么,但我认为这是因为我在 javascript 文件中定义了 fruitList,而不是作为来自 Java 文件的消息传递。

http://jsfiddle.net/Lvc0u55v/7921//

试试这个,

 <select ng-model="fruit" ng-options="key as value for (key, value) in fruitList | orderBy:'key'" >

显然,这是因为我使用的是 JSON 对象,而不是 JSON 数组。这样我就可以防止更改顺序。