我有以下数组:
[
{volume:49, number: 1},
{volume:48, number: 3},
{volume:4, number: 1},
{volume:4, number: 4},
{volume:1, number: 1},
{volume:9, number: 2},
{volume:5, number: 1},
{volume:5, number: 2}
]
我目前的过滤是订购号码
[9.2, 5.1, 5.2, 49.1, 48.3, 4.4, 4.1, 1.1 ]
这是我的ng-repeat:
<a ng-repeat="item in issueList | orderBy:['-volume','-number']">
<div>
{{ item.volume }}.{{ item.number }}
</div>
</a>
我目前的逻辑不正确吗?似乎卷的排序正在查看第一个数字,不知何故导致9和5在49之前出现
答案 0 :(得分:1)
您的数字似乎被视为字符串,这就是为什么它们没有按预期排序的原因。
尝试以隐式方式使它们成为整数:
$scope.items = [
{volume:'49', number: 1},
{volume:'48', number: 3},
{volume:'4', number: 1},
{volume:'4', number: 4},
{volume:'1', number: 1},
{volume:'9', number: 2},
{volume:'5', number: 1},
{volume:'5', number: 2}
];
angular.forEach($scope.items, function (item) {
console.log(item);
item.volume = +item.volume;
});