Javascript 如何在angular js中切换orderby

Javascript 如何在angular js中切换orderby,javascript,angularjs,angularjs-directive,angularjs-scope,angularjs-ng-repeat,Javascript,Angularjs,Angularjs Directive,Angularjs Scope,Angularjs Ng Repeat,我正在尝试使用angularjs在同一个按钮单击时以升序和降序显示数据。我能够以升序显示数据。但如何在同一个按钮单击时显示降序(作为jquery中的切换)。我会告诉你们这个问题,我的表格标题“V”上有一个按钮,我按升序对列进行排序。我们能按相同的按钮按降序吗 当用户第一次单击Column first.时,预期结果是这样的,我能够实现这一点 Calls Royal Dutch sell p a royal data Xgtyu test royal

我正在尝试使用angularjs在同一个按钮单击时以升序和降序显示数据。我能够以升序显示数据。但如何在同一个按钮单击时显示降序(作为jquery中的切换)。我会告诉你们这个问题,我的表格标题“V”上有一个按钮,我按升序对列进行排序。我们能按相同的按钮按降序吗

当用户第一次单击Column first.时,预期结果是这样的,我能够实现这一点

 Calls   Royal Dutch sell

    p        a royal data

    Xgtyu     test royal dat
但如果他再次点击同一个按钮,那么它将显示预期结果

    Xgtyu     test royal dat

    p        a royal data

   Calls   Royal Dutch sell
我需要在单击同一按钮时将数据从升序切换到降序

这是我的密码


请注意orderBy筛选器的语法:

{{ orderBy_expression | orderBy : expression : reverse }}
表达式是排序依据的列,反转可以为true或false。以下是进一步解释这一点的文档:

所以把你的ng重复改为

ng-repeat="column in displayData | orderBy:sortVal:sortDir"
现在,在setSort方法中添加以下代码以管理排序方向:

 if ($scope.sortVal === 'columns['+idx+'].value')
    $scope.sortDir = !$scope.sortDir;
还可以在控制器顶部定义默认排序方向:

$scope.sortDir = false;
我们将其初始化为false,因为false是asc-sort,true是desc-sort。 以下是更新的plunker:

 if ($scope.sortVal === 'columns['+idx+'].value')
    $scope.sortDir = !$scope.sortDir;
$scope.sortDir = false;