Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.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
Angularjs asc/desc顺序中的订单表列_Angularjs_Angularjs Ng Repeat - Fatal编程技术网

Angularjs asc/desc顺序中的订单表列

Angularjs asc/desc顺序中的订单表列,angularjs,angularjs-ng-repeat,Angularjs,Angularjs Ng Repeat,我有一个简单的表,当您单击一列时,它会按升序/降序对一列进行排序。但是,我希望每个列“记住”它以前的状态,并在单击时执行相反的操作。例如,如果我第一次单击列名name,它将按asc排序。然后假设我点击了另一列,它按asc排序。然后我再次单击name名称应按降序排序 但是,我使用的方法不存储哪个列,即使我存储了,我也无法在代码的排序部分访问它。我对行而不是列使用了ng repeat,因此我不确定如何继续。箭头可以正常工作(除了一次只能对1进行排序,因此只有1应该可见),但是如何访问行重复部分中的列

我有一个简单的表,当您单击一列时,它会按升序/降序对一列进行排序。但是,我希望每个列“记住”它以前的状态,并在单击时执行相反的操作。例如,如果我第一次单击列名
name
,它将按asc排序。然后假设我点击了另一列,它按asc排序。然后我再次单击
name
<代码>名称应按降序排序

但是,我使用的方法不存储哪个列,即使我存储了,我也无法在代码的排序部分访问它。我对行而不是列使用了
ng repeat
,因此我不确定如何继续。箭头可以正常工作(除了一次只能对1进行排序,因此只有1应该可见),但是如何访问行重复部分中的列名?有什么想法吗

这是一个

代码:


var-app=angular.module('app',[]);
app.controller('ctrl',['$scope',
职能($范围){
$scope.data=tastyJSON;
$scope.columns=Object.keys($scope.data[0]);
$scope.order={};
$scope.sort=函数(列){
log(angular.toJson($scope.order));
if($scope.order[column]==column){
$scope.order[column+'Desc']=!$scope.order[column+'Desc'];
}否则{
$scope.order[列]=列;
$scope.order[column+'Desc']=false;
}
};
}]);
v
^
{{行[列]}}

你已经很接近了!你唯一缺少的就是跟踪当前的分类。这是我的零钱:

$scope.sort = function(column){
  if ($scope.order[column] == column) {
    $scope.order[column+'Desc'] = !$scope.order[column+'Desc'];
  } else {
    $scope.order[column] = column;
    $scope.order[column+'Desc'] = false;
  }

  $scope.currentSort = {exp: $scope.order[column], reverse: $scope.order[column+'Desc']} ;
};
查看代码:

<a ng-show="currentSort.exp == column && currentSort.reverse">v</a>
<a ng-show="currentSort.exp == column && !currentSort.reverse">^</a>

应该知道!这太简单了。谢谢
<a ng-show="currentSort.exp == column && currentSort.reverse">v</a>
<a ng-show="currentSort.exp == column && !currentSort.reverse">^</a>
<tr ng-repeat="row in data | orderBy:currentSort.exp: currentSort.reverse">