Angular 反向排序对象数组

Angular order array of object in reverse

无法让它工作:

<tr ng-repeat="serv in servicesAdded |orderBy:predicate:reverse">
      <td>{{serv.stepNumber}}</td>...

在我的控制器中:

    $scope.predicate = 'stepNumber';
    $scope.reverse = true;
    $scope.order = function (predicate) {
        $scope.reverse = ($scope.predicate === predicate) ? !$scope.reverse : false;
        $scope.predicate = predicate;
    };

我的对象数组如下所示

  $scope.servicesAdded = [{stepNumber:-1,otherData:""},
                          {stepNumber:-2,otherData:""},
                          {stepNumber:1,otherData:""}];

我从来没有按相反的顺序出现(-2 在前)我做错了什么?

尝试使用“+predicate”、“-predicate”的语法

<tr ng-repeat="serv in servicesAdded |orderBy:usedPredicate">
    <td>{{serv.stepNumber}}</td>...

和Angular代码:

$scope.order = function (predicate) {
        $scope.reverse = ($scope.predicate === predicate) ? !$scope.reverse : false;
        $scope.usedPredicate = $scope.reverse ? '-' : '+' + predicate;
        $scope.predicate = predicate;
    };

An expression can be optionally prefixed with + or - to control ascending or descending sort order (for example, +name or -name). If no property is provided, (e.g. '+') then the array element itself is used to compare where sorting.

orderBy Angular docs