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= 订购的东西]
我正在尝试根据分数和名称这两个变量进行过滤(首先是分数,然后是名称)。
这适用于各种游戏,其中包括得分顺序可能相反的游戏(例如高尔夫)和得分正常的游戏(例如足球)。
我目前的代码是:
<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= 订购的东西]