AngularJS orderBy - 多个字段,但只有一个反转

AngularJS orderBy - Multiple fields, but only one reversed

我正在尝试根据分数和名称这两个变量进行过滤(首先是分数,然后是名称)。

这适用于各种游戏,其中包括得分顺序可能相反的游戏(例如高尔夫)和得分正常的游戏(例如足球)。

我目前的代码是:

<span ng-repeat="sel in pot.sels | orderBy:['score','name']:CompCtrl.isReverse()">

这里的问题是,如果分数需要,名称也会被颠倒。我试图让 name 永远不会被布尔值反转,但是 score 是 (isReverse( ) 检查游戏是否为反向计分游戏)。

通读我能找到的所有内容,如果不创建自定义过滤器来处理这个问题,这似乎是不可能的。这是正确的还是我缺少执行此操作的方法?

考虑这个问题的最佳方法是,简单来说,我需要以下内容:

Boolean = true --> -score, name

Boolean = false --> score, name

谢谢。

我会使用自定义函数过滤器,如下所示:

<span ng-repeat="sel in pot.sels | orderBy:[orderScore,'name']">

其中的js是这样的:

angular.module('yourModule').controller('MyCtrl',['$scope',function($scope){
    $scope.orderScore = function(el){
        return (isReverse() ? '-' : '+') + el.score;
    }
}]);

我没有对此进行测试,只是为了向您展示这个想法,我只需要找到一种方法来 return 可以用 <、=== 和 >[=12= 订购的东西]