ngGrid Очистить данные сортировки

Я хотел бы иметь возможность удалить данные сортировки из 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;
    }
}; 

Вот пример плункера. Спасибо.


person oblivion19    schedule 09.08.2013    source источник


Ответы (3)


У меня была аналогичная проблема, когда мне нужно было очистить сортировку и отфильтровать. Для очистки сортировки я использовал это в функции, которая работает с внешней сортировкой (не пробовал с сортировкой 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 = [];
}

Надеюсь, поможет.

person Animator    schedule 16.09.2013
comment
Большое спасибо, сэр. Это действительно помогает!! - person oblivion19; 17.09.2013
comment
Престижность Pratik S ниже за недостающую часть. - person david.barkhuizen; 14.08.2014

В дополнение к приведенному выше ответу отсутствует одна вещь, которая может привести вас к ошибке:

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

Вы пропустили это для инициализации столбца, что означает, что на курорте консоль покажет попытку доступа к длине undefined, и сортировка не будет работать.

person Pratik S    schedule 25.02.2014
comment
Хороший улов, Пратик, я отредактировал исходный ответ, включив ваше исправление. - person david.barkhuizen; 14.08.2014

Если вы используете внешнюю sortInfo для обработки, вам нужно добавить

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

чтобы внутренняя sortInfo и внешняя sortInfo ngGrid были согласованы

person Angela Tian    schedule 12.03.2015