Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS orderBy-多个字段,但只有一个字段是反向的_Javascript_Angularjs_Angularjs Filter_Angular Filters_Angularjs Orderby - Fatal编程技术网

Javascript AngularJS orderBy-多个字段,但只有一个字段是反向的

Javascript AngularJS orderBy-多个字段,但只有一个字段是反向的,javascript,angularjs,angularjs-filter,angular-filters,angularjs-orderby,Javascript,Angularjs,Angularjs Filter,Angular Filters,Angularjs Orderby,我尝试根据两个变量进行筛选,分数和名称(分数第一,然后是名称) 这适用于各种游戏,包括得分顺序相反的游戏(如高尔夫)和得分正常的游戏(如足球) 我目前拥有的代码是: <span ng-repeat="sel in pot.sels | orderBy:['score','name']:CompCtrl.isReverse()"> 这里的问题是,如果需要更改分数,名称也会颠倒。我正在尝试获取它,以便名称永远不会被布尔值反转,但分数是(isReverse()检查

我尝试根据两个变量进行筛选,分数和名称(分数第一,然后是名称)

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

我目前拥有的代码是:

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

这里的问题是,如果需要更改分数,名称也会颠倒。我正在尝试获取它,以便名称永远不会被布尔值反转,但分数是(isReverse()检查游戏是否为反向分数游戏)

通读我能找到的一切,如果不创建一个自定义过滤器来处理这个问题,这似乎是不可能的。这是正确的还是我遗漏了一个方法

考虑这一点的最佳方式是,简单地说,我需要以下几点:

Boolean=true-->-分数、名称

Boolean=false-->分数、名称


谢谢。

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

<span ng-repeat="sel in pot.sels | orderBy:[orderScore,'name']">
angular.module('yourModule').controller('MyCtrl',['$scope',function($scope){
    $scope.orderScore = function(el){
        return (isReverse() ? '-' : '+') + el.score;
    }
}]);

我没有对此进行测试,但为了向您展示我的想法,我只需要找到一种方法返回可以使用

订购的东西。文档中有一个很好的例子。你可能想看看。嗨,尼克,我不知道这在文档里的什么地方?最后一个示例一次只对一个字段进行排序,我尝试同时对两个字段进行排序。您好,感谢您的回复,我理解您尝试执行的操作,这样将修改代码,并查看我能想出什么。您发布的解决方案顺序是0,然后是1,然后是2,等等。结果是一个列表,例如:0,0,0,1,11,13,2,23,3,4,45,54,…更新我的第一篇帖子,反过来它会变成-10,-14,-15,-2,-4,-6,0,0,1,13,4,6足够容易修复,用
vm.isReverse()替换返回值?el.score*-1:el.score*1
标记为答案,因为我不知道如何将sel传递到orderBy变量中定义的函数中(这就是el部分的作用)。这一点,加上自定义代码,为我指明了正确的方向