0

我希望能够从 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的例子。谢谢你。

4

3 回答 3

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 = [];
}

希望能帮助到你。

于 2013-09-16T13:30:22.523 回答
3

除了上述答案之外,缺少的一件事可能会让您犯错是

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

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

于 2014-02-25T16:40:02.357 回答
1

如果使用外部的 sortInfo 来处理,则需要添加

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

使 ngGrid 内部 sortInfo 和外部 sortInfo 一致

于 2015-03-12T10:28:13.230 回答