Когда последний элемент удаляется из таблицы на странице 2 или выше, навигация по страницам исчезает.
$scope.tableParams = new ngTableParams({
page: 1, // show first page
count: 10, // count per page
sorting: {
firstName: 'asc' // initial sorting
}
}, {
total: 0,
getData: function ($defer, params) {
$scope.myData = angular.copy($scope.clients, []);
var filteredData = params.filter() ? $filter('filter')($scope.myData, params.filter()) : $scope.myData;
var orderedData = params.sorting() ? $filter('orderBy')(filteredData, params.orderBy()) : filteredData;
params.total(orderedData.length);
var data = orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count());
//EXTRA CHECK
if (data.length === 0 && params.page() !== 1){
params.page(params.page()-1);
filteredData = params.filter() ? $filter('filter')($scope.myData, params.filter()) : $scope.myData;
orderedData = params.sorting() ? $filter('orderBy')(filteredData, params.orderBy()) : filteredData;
params.total(orderedData.length);
data = orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count());
}
$defer.resolve(data);
}
});
Я обошел это с помощью вышеупомянутой проверки, чтобы увидеть, возвращаются ли отфильтрованные данные пустыми и не на первой ли странице. Есть ли встроенный способ управления этим, на который я не обращаю внимания?
+1. У меня та же проблема, что и выше.
В качестве обходного пути вы можете проверить, является ли текущая строка последней на этой странице, и это не первая страница.
if ($ scope.tableParams.data.length == 1 && vm.tableParams.page ()! = 1) {
$ scope..tableParams.page (vm.tableParams.page () - 1);
}
$ scope.tableParams.reload ();
Это то, что я делал в прошлом.
Я не думаю, что в ближайшее время ngTable будет отслеживать набор данных
(это может привести к потенциальным проблемам с производительностью). Так что я бы предложил
иду с этим в качестве решения.
Во вторник, 7 февраля 2017 г., в 9:46 М.Мсаллати [email protected] написал:
В качестве обходного пути вы можете отметить, является ли текущая строка последней в этой строке.
страница и это не первая страницаif ($ scope.tableParams.data.length == 1 && vm.tableParams.page ()! = 1) {
$ scope..tableParams.page (vm.tableParams.page () - 1); }
$ scope..tableParams.reload ();-
Вы получаете это, потому что подписаны на эту беседу.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/esvit/ng-table/issues/720#issuecomment-277949435 или отключить звук
нить
https://github.com/notifications/unsubscribe-auth/AA2HPnt6g1_cHsg4NhwX9VKNbwHuzASsks5raD2HgaJpZM4GLPEq
.
Раньше я также использовал обходной путь
Проблема в том, что ngTable не «знает» об операции удаления.
ngTable нужно будет следить за набором данных на предмет изменений - это будет
проблема производительности
Во вторник, 7 февраля 2017 г., в 10:04, Якуб Повьера [email protected]
написал:
Я также использовал обходной путь https://github.com/msallati в
мимо. Работает неплохо, но было бы неплохо добавить это исправление в ngTable
как это немного напрягает ... Это всего лишь одна проверка при удалении
операция, поэтому я думаю, что это не будет ударом по производительности для библиотеки в целом.-
Вы получили это, потому что прокомментировали.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/esvit/ng-table/issues/720#issuecomment-277953666 или отключить звук
нить
https://github.com/notifications/unsubscribe-auth/AA2HPo3igPmhmaPxxusbi-rJ1YreOLGqks5raEGigaJpZM4GLPEq
.
Спасибо за ваше объяснение! Теперь я могу полностью понять, что происходит :)
Самый полезный комментарий
Раньше я также использовал обходной путь