我有这样的JSON:
"db" : {
"x" : {
"0" : "A",
"1" : "B",
"2" : "C",
"3" : "D",
"4" : "E",
"5" : "F",
"6" : "G",
"7" : "H",
"8" : "I",
"9" : "J",
"10" : "K",
"11" : "L",
"12" : "M",
"13" : "N"
}
在控制器中我有:
$scope.object = currentObject.get();
$scope.x = $scope.object.db.x;
(currentObject.get()是我从数据库中获取数据的函数,在DB中有我之前编写的JSON)
在视图中:
<div ng-repeat="y in x">{{y}}</div>
我期待结果如下:
<div>A</div>
<div>B</div>
<div>C</div>
etc. etc.
相反,我看到的是:
<div>A</div>
<div>K</div>
<div>L</div>
<div>M</div>
<div>N</div>
<div>B</div>
etc. etc.
如何使用ng-repeat中的orderBy解决此问题?
答案 0 :(得分:0)
我还没有评论添加到@ charlietfl的回复,但这是一个关于ngRepeat支持按对象键排序的开放性问题:https://github.com/angular/angular.js/issues/8458
除非数据中的键是值的ID,否则数组是确定的方法。你仍然需要一个数组,但你的数据可能看起来像这样;
var x = [
{ id: 0, value: 'A' },
{ id: 1, value: 'B' },
{ id: 2, value: 'C' },
etc...
]
你可以使用:
<div ng-repeat="obj in x | orderBy: 'id'">{{ obj.value }}</div>