带小数的数字的角度顺序

时间:2015-12-08 15:12:07

标签: javascript angularjs angularjs-ng-repeat angular-filters

我有以下数组:

[
 {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之前出现

1 个答案:

答案 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;
});