I have the following array:
[
{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}
]
My current filtering is ordering the numbers
[9.2, 5.1, 5.2, 49.1, 48.3, 4.4, 4.1, 1.1 ]
Here is my ng-repeat:
<a ng-repeat="item in issueList | orderBy:['-volume','-number']">
<div>
{{ item.volume }}.{{ item.number }}
</div>
</a>
Is my current logic incorrect? It seems like the ordering for volume is looking at the first number, somehow resulting in 9 and 5 coming before 49
It seems like your numbers are treated as strings, that is why they are not sorted as expected.
Try to make them integers in an implicit way:
$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;
});