我知道在我目前版本的角形,ng-repeat
自动排序。我的问题是,它的排序似乎不正确。
获取带有编号键的对象:
{
"1": "value",
"2": "value",
"10": "value"
}
ng-repeat
把它分类为1
,10
,2
。我对这种排序很熟悉,在数字前面扔0应该能解决这个问题。但是,添加0需要额外的代码,因此需要去掉以供显示。
同样,转换为数组会导致ng-repeat
循环所有空值(3-9),并创建多余的元素,并生成重复的错误。
如何使ng-repeat
按键对对象排序,就像它们是整数一样?
发布于 2015-05-31 03:03:30
我无法找到不改变数据结构的解决方案,但下面是一个示例,说明如何使用键将对象排序为数组。以下是html:
<ul ng-controller="ExampleController">
<li ng-repeat="item in filtered">{{ item.value }}</li>
</ul>
这是密码:
controller('ExampleController', ['$scope', function($scope) {
$scope.list = {
"1": "1 Value",
"10": "10 Value",
"5": "5 Value",
"2": "2 Value"
};
$scope.$watch('list', function (newVal) {
$scope.filtered = Object.keys(newVal).map(function (key) {
return { key: key, value: newVal[key] };
});
});
}]);
此代码的输出如下所示:
请注意,这会创建一个键/值对对象数组,使用起来更容易。下面是它工作的一个柱塞示例:http://plnkr.co/edit/Q0BYLeMzTZmd1k8VzTlQ?p=preview
https://stackoverflow.com/questions/30552347
复制相似问题