AngularJS — выпадающие значения выбора не в порядке с ng-repeat

У меня есть выпадающий список со следующими данными; (Это также вывод на консоль в Chrome).

{
8: "Something",
9: "Something Again!",
10: "And again",
11: "And again!",
12: "etc...",
13: "etc etc...",
}

HTML и угловой для выпадающего списка;

<select name="name" ng-model="choosen">
<option value="">Please Select</select>
<option ng-repeat="(key, value) in data" value="[[key]]">[[value]]</option>
</select>

Данные получены с помощью следующего запроса в Laravel (4.2) с использованием функции списков;

Model::lists('name','id');

По какой-то причине данные для выпадающего меню переупорядочиваются в моем раскрывающемся списке;

<select name="name" ng-model="choosen">
<option value="">Please Select</select>
<option value="10">And again</option>
<option value="11">And again!</option>
<option value="12">etc...</option>
<option value="13">etc etc...</option>
<option value="8">Something</option>
<option value="9">Something Again!</option>
</select>

Как сделать так, чтобы вывод из ng-repeat проходил по порядку данных в правильном числовом порядке?

Вот так;

<select name="name" ng-model="choosen">
<option value="">Please Select</select>
<option value="8">Something</option>
<option value="9">Something Again!</option>
<option value="10">And again</option>
<option value="11">And again!</option>
<option value="12">etc...</option>
<option value="13">etc etc...</option>
</select>

Плункр есть Вот

0

Решение

Похоже, что ngRepeat упорядочивает данные по хешу $$, возможно, обходной путь состоит в том, чтобы использовать функцию, которая перечисляет ключи, а затем перебирает их:

 $scope.keys = function(obj){
return obj? Object.keys(obj) : [];
}

http://plnkr.co/edit/S8BiSPy9axQobSZVwk3D?p=preview

1

Другие решения

Других решений пока нет …