Ng-table: Удаление строки из ngTable, когда это последний элемент на странице

Созданный на 8 окт. 2015  ·  6Комментарии  ·  Источник: esvit/ng-table

Когда последний элемент удаляется из таблицы на странице 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);

        }
    });

Я обошел это с помощью вышеупомянутой проверки, чтобы увидеть, возвращаются ли отфильтрованные данные пустыми и не на первой ли странице. Есть ли встроенный способ управления этим, на который я не обращаю внимания?

Самый полезный комментарий

Раньше я также использовал обходной путь

Все 6 Комментарий

+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
.

Спасибо за ваше объяснение! Теперь я могу полностью понять, что происходит :)

Была ли эта страница полезной?
0 / 5 - 0 рейтинги