我有一个这样的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()是我从数据库中获取数据的函数,并且在数据库中有我之前编写的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修复此问题?
最佳答案
我尚无法添加@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>
关于javascript - Angular -在ng-repeat中使用orderBy以递增顺序进行排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27883044/