Quando o último item é removido de uma tabela na página 2 ou superior, a navegação da paginação desaparece.
$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);
}
});
Eu contornei com a verificação acima para ver se os dados filtrados voltam vazios e se não estamos na página um. Existe uma maneira embutida de gerenciar isso que estou negligenciando?
+1. Eu tenho o mesmo problema acima.
Como alternativa, você pode verificar se a linha atual é a última da página e não é a primeira página
if ($ scope.tableParams.data.length == 1 && vm.tableParams.page ()! = 1) {
$ scope..tableParams.page (vm.tableParams.page () - 1);
}
$ scope.tableParams.reload ();
Isso é o que fiz no passado.
Eu não acho que o ngTable vai monitorar o conjunto de dados tão cedo
(isso introduziria problemas de desempenho em potencial). Então eu sugeriria
indo com isso como uma solução.
Na terça-feira, 7 de fevereiro de 2017 às 9h46, M.Msallati [email protected] escreveu:
Como solução alternativa, você pode verificar se a linha atual é a última dessa
página e não é a primeira páginaif ($ scope.tableParams.data.length == 1 && vm.tableParams.page ()! = 1) {
$ scope..tableParams.page (vm.tableParams.page () - 1); }
$ scope..tableParams.reload ();-
Você está recebendo isto porque está inscrito neste tópico.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/esvit/ng-table/issues/720#issuecomment-277949435 ou mudo
o segmento
https://github.com/notifications/unsubscribe-auth/AA2HPnt6g1_cHsg4NhwX9VKNbwHuzASsks5raD2HgaJpZM4GLPEq
.
Eu também usei a solução alternativa @msallati no passado. Funciona muito bem, mas seria bom adicionar essa correção ao ngTable, pois é um pouco chato ... É apenas uma verificação durante a operação de exclusão, então acho que não será um impacto no desempenho da biblioteca geral.
O problema é que o ngTable não "sabe" sobre a operação de exclusão.
ngTable precisaria observar o conjunto de dados para alterações - isso seria um
problema de desempenho
Na terça, 7 de fevereiro de 2017 às 10h04, Jakub Powierza [email protected]
escreveu:
Também usei @msallati https://github.com/msallati solução alternativa no
passado. Funciona muito bem, mas seria bom adicionar essa correção ao ngTable
pois é um pouco chato ... É apenas uma verificação durante a exclusão
operação, então eu acho que não será um impacto no desempenho da biblioteca em geral.-
Você está recebendo isto porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/esvit/ng-table/issues/720#issuecomment-277953666 ou mudo
o segmento
https://github.com/notifications/unsubscribe-auth/AA2HPo3igPmhmaPxxusbi-rJ1YreOLGqks5raEGigaJpZM4GLPEq
.
Obrigado pela sua explicação! Agora posso entender perfeitamente o que está acontecendo :)
Comentários muito úteis
Eu também usei a solução alternativa @msallati no passado. Funciona muito bem, mas seria bom adicionar essa correção ao ngTable, pois é um pouco chato ... É apenas uma verificação durante a operação de exclusão, então acho que não será um impacto no desempenho da biblioteca geral.