我正在尝试使用AngularJS获得选择下拉列表。问题依赖于选项的顺序:10在2之后,而不是在选项列表的末尾。我怎样才能把它放在应有的位置?
HTML
<div ng-app>
<div ng-controller="TestCtrl">
<select ng-model="val" ng-options="k as v for (k,v) in notes">
</select>
</div>
JS
function TestCtrl($scope) {
$scope.notes = {
'0': 'Non applicable',
'1': '1 -Très Mauvais',
'2': '2 -Mauvais',
'3': '3 -Insuffisant',
'4': '4 -Mediocre',
'5': '5 -Moyen',
'6': '6 -Correct',
'7': '7 -Bon',
'8': '8 -Très bon',
'9': '9 -Excellent',
'10': '10 -Parfait'
};
}
这是一个fiddle来演示。
提前致谢。
答案 0 :(得分:1)
正如Yoshi所说,您的数据结构并非最适合此类目的。 正如charlierfl所说,AngularJs使用数字作为默认的排序标准,所以你可以这样做:
$scope.notes = [
{'value': 0, 'remarque': 'Non applicable'},
{'value': 1, 'remarque': '1 -Très Mauvais'},
{'value': 2, 'remarque': '2 -Mauvais'},
{'value': 3, 'remarque': '3 -Insuffisant'},
{'value': 4, 'remarque': '4 -Mediocre'},
{'value': 5, 'remarque': '5 -Moyen'},
{'value': 6, 'remarque': '6 -Correct'},
{'value': 7, 'remarque': '7 -Bon'},
{'value': 8, 'remarque': '8 -Très bon'},
{'value': 9, 'remarque': '9 -Excellent'},
{'value': 10, 'remarque': '10 -Parfait'}
];
在你的HTML中:
<select ng-model="val" ng-options="note.value as note.remarque for note in notes">
</select>
答案 1 :(得分:0)
试试这个:
ng-options="k as v for (k,v) in notes | orderBy:['k']"