当从第 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 不会很快监控数据集
(这会引入潜在的性能问题)。 所以我建议
以此作为解决方案。
在 2017 年 2 月 7 日星期二上午 9:46,M.Msallati [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
.
我过去也使用过@msallati解决方法。 效果很好,但是将这个修复程序添加到 ngTable 会很好,因为它有点烦人......它只是删除操作期间的一次检查,所以我认为它不会对整个库的性能造成影响。
问题是 ngTable 不“知道”删除操作。
ngTable 需要观察数据集的变化——这将是一个
性能问题
2017 年 2 月 7 日,星期二,上午 10:04,Jakub Powierza通知@github.com
写道:
我还使用了@msallati https://github.com/msallati解决方法
过去的。 效果很好,但最好将此修复程序添加到 ngTable
因为它有点烦人......它只是删除过程中的一项检查
操作,所以我认为它不会对整个库的性能造成影响。—
您收到此消息是因为您发表了评论。
直接回复本邮件,在GitHub上查看
https://github.com/esvit/ng-table/issues/720#issuecomment-277953666或静音
线程
https://github.com/notifications/unsubscribe-auth/AA2HPo3igPmhmaPxxusbi-rJ1YreOLGqks5raEGigaJpZM4GLPEq
.
谢谢你的解释! 现在我可以完全理解发生了什么:)
最有用的评论
我过去也使用过@msallati解决方法。 效果很好,但是将这个修复程序添加到 ngTable 会很好,因为它有点烦人......它只是删除操作期间的一次检查,所以我认为它不会对整个库的性能造成影响。