Ng-table: Eliminar fila de ngTable cuando es el último elemento de la página

Creado en 8 oct. 2015  ·  6Comentarios  ·  Fuente: esvit/ng-table

Cuando se elimina el último elemento de una tabla en la página 2 o superior, la navegación paginada 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);

        }
    });

Lo solucioné con la verificación anterior para ver si los datos filtrados regresan vacíos y si no estamos en la página uno. ¿Existe una forma incorporada de gestionar esto que estoy pasando por alto?

Comentario más útil

También he usado la solución @msallati en el pasado. Funciona bastante bien, pero sería bueno agregar esta corrección a ngTable, ya que es un poco molesto ... Es solo una verificación durante la operación de eliminación, por lo que creo que no será un impacto de rendimiento para la biblioteca en general.

Todos 6 comentarios

+1. Tengo el mismo problema que el anterior.

Como solución alternativa, puede verificar si la fila actual es la última en esa página y no es la primera página

if ($ scope.tableParams.data.length == 1 && vm.tableParams.page ()! = 1) {
$ scope..tableParams.page (vm.tableParams.page () - 1);
}
$ scope.tableParams.reload ();

Eso es lo que hice en el pasado.

No creo que ngTable vaya a monitorear el conjunto de datos en el corto plazo
(esto introduciría problemas potenciales de rendimiento). Así que sugeriría
yendo con esto como una solución.

El martes 7 de febrero de 2017 a las 9:46 a.m., M.Msallati [email protected] escribió:

Como solución alternativa, puede ckeck Si la fila actual es la última en ese
página y no es la primera página

if ($ scope.tableParams.data.length == 1 && vm.tableParams.page ()! = 1) {
$ scope..tableParams.page (vm.tableParams.page () - 1); }
$ alcance..tableParams.reload ();

-
Estás recibiendo esto porque estás suscrito a este hilo.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/esvit/ng-table/issues/720#issuecomment-277949435 , o silenciar
la amenaza
https://github.com/notifications/unsubscribe-auth/AA2HPnt6g1_cHsg4NhwX9VKNbwHuzASsks5raD2HgaJpZM4GLPEq
.

También he usado la solución @msallati en el pasado. Funciona bastante bien, pero sería bueno agregar esta corrección a ngTable, ya que es un poco molesto ... Es solo una verificación durante la operación de eliminación, por lo que creo que no será un impacto de rendimiento para la biblioteca en general.

El problema es que ngTable no "sabe" acerca de la operación de eliminación.
ngTable necesitaría observar el conjunto de datos en busca de cambios; esto sería un
problema de rendimiento

El martes 7 de febrero de 2017 a las 10:04 a. M., Jakub Powierza [email protected]
escribió:

También utilicé @msallati https://github.com/msallati en el
pasado. Funciona bastante bien, pero sería bueno agregar esta corrección a ngTable
ya que es un poco molesto ... Es solo una verificación durante la eliminación
operación, así que creo que no será un éxito en el rendimiento de la biblioteca en general.

-
Estás recibiendo esto porque comentaste.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/esvit/ng-table/issues/720#issuecomment-277953666 , o silenciar
la amenaza
https://github.com/notifications/unsubscribe-auth/AA2HPo3igPmhmaPxxusbi-rJ1YreOLGqks5raEGigaJpZM4GLPEq
.

¡Gracias por tu explicación! Ahora puedo entender completamente lo que está pasando :)

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

Nagendra1402 picture Nagendra1402  ·  3Comentarios

faceleg picture faceleg  ·  11Comentarios

jlebleu picture jlebleu  ·  3Comentarios

zeeshanhanif picture zeeshanhanif  ·  5Comentarios

muhlegg picture muhlegg  ·  29Comentarios