ngGrid清除排序数据

时间:2013-08-09 08:51:24

标签: angularjs ng-grid

我希望能够从ng-grid中删除排序数据。在下面的示例中,我想在按“排序”时删除排序。

我一直在阅读ng-grid.js,我发现了一个名为ClearSortingData()的函数。我不知道如何实现它,或者它应该做我想做的事情。

self.clearSortingData = function (col) {
    if (!col) {
        angular.forEach(self.lastSortedColumns, function (c) {
            c.sortDirection = "";
            c.sortPriority = null;
        });
        self.lastSortedColumns = [];
    } else {
        angular.forEach(self.lastSortedColumns, function (c) {
            if (col.index !== c.index) {
                c.sortDirection = "";
                c.sortPriority = null;
            }
        });
        self.lastSortedColumns[0] = col;
        self.lastSortedColumns.length = 1;
    }
}; 

以下是plunker示例。谢谢。

3 个答案:

答案 0 :(得分:4)

当我需要清除排序并过滤掉时,我遇到了类似的问题。为了清除排序,我在一个使用外部排序的函数中使用了它(没有尝试使用javascript排序)。

if ($scope.gridOptions) {
  $scope.gridOptions.ngGrid.config.sortInfo = { fields:[], directions: [], columns:[] };
    angular.forEach($scope.gridOptions.ngGrid.lastSortedColumns, function (c) {
      c.sortPriority = null;
      c.sortDirection = "";
  });
  $scope.gridOptions.ngGrid.lastSortedColumns = [];
}

希望它有所帮助。

答案 1 :(得分:3)

除上述答案外,还有一件可能让你误入歧途的事情是

 $scope.gridOptions.ngGrid.config.sortInfo = { fields:[], directions: [], columns:[] };

你错过了这个来初始化列,这意味着在控制台上将显示尝试访问未定义的长度并且排序将不起作用。

答案 2 :(得分:1)

如果使用外部sortInfo进行处理,则需要添加

  
    

$ scope.sortInfo = $ scope.gridOptions.ngGrid.config.sortInfo

  

使ngGrid内部sortInfo和外部sortInfo始终如一