Javascript 如何在angular js中切换orderby
我正在尝试使用angularjs在同一个按钮单击时以升序和降序显示数据。我能够以升序显示数据。但如何在同一个按钮单击时显示降序(作为jquery中的切换)。我会告诉你们这个问题,我的表格标题“V”上有一个按钮,我按升序对列进行排序。我们能按相同的按钮按降序吗 当用户第一次单击Column first.时,预期结果是这样的,我能够实现这一点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
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;