Табулятор не работает с удаленной нумерацией страниц и ajaxURLGenerator

#javascript #ajax #pagination #tabulator

#javascript #ajax #разбивка на страницы #табулятор

Вопрос:

У меня проблема с табулятором (4.9.1) и нумерацией страниц, когда я пытаюсь настроить его с помощью функции удаленной нумерации страниц и ajaxUrlGenerator, он никогда не переходит в функцию генератора, после изучения кода я заметил, что код tabulator выполняет следующее :

 Tabulator.prototype._loadInitialData = function () {
    var self = this;

    if (self.options.pagination amp;amp; self.modExists("page")) {
        self.modules.page.reset(true, true);

        if (self.options.pagination == "local") {
            if (self.options.data.length) {
                self.rowManager.setData(self.options.data, false, true);
            } else {
                if ((self.options.ajaxURL || self.options.ajaxURLGenerator) amp;amp; self.modExists("ajax")) {
                    self.modules.ajax.loadData(false, true).then(function () {}).catch(function () {
                        if (self.options.paginationInitialPage) {
                            self.modules.page.setPage(self.options.paginationInitialPage);
                        }
                    });

                    return;
                } else {
                    self.rowManager.setData(self.options.data, false, true);
                }
            }

            if (self.options.paginationInitialPage) {
                self.modules.page.setPage(self.options.paginationInitialPage);
            }
        } else {
            if (self.options.ajaxURL) {
                self.modules.page.setPage(self.options.paginationInitialPage).then(function () {}).catch(function () {});
            } else {
                self.rowManager.setData([], false, true);
            }
        }
    } else {
        if (self.options.data.length) {
            self.rowManager.setData(self.options.data);
        } else {
            if ((self.options.ajaxURL || self.options.ajaxURLGenerator) amp;amp; self.modExists("ajax")) {
                self.modules.ajax.loadData(false, true).then(function () {}).catch(function () {});
            } else {
                self.rowManager.setData(self.options.data, false, true);
            }
        }
    }
};
 

использование ajaxURLGenerator с «локальной» конфигурацией позволяет корректно работать в удаленном режиме.
Но тогда он не выполняет прогрессивную нумерацию страниц и неправильно передает параметры в функции ajaxURLGenerator, вероятно, из-за механизма синтаксического анализа, который не вызывается в «локальном» режиме для данных :

 Page.prototype.trigger = function () {
    var _this81 = this;

    var left;

    return new Promise(function (resolve, reject) {

        switch (_this81.mode) {
            case "local":
                left = _this81.table.rowManager.scrollLeft;

                _this81.table.rowManager.refreshActiveData("page");
                _this81.table.rowManager.scrollHorizontal(left);

                _this81.table.options.pageLoaded.call(_this81.table, _this81.getPage());
                resolve();
                break;

            case "remote":
            case "progressive_load":
            case "progressive_scroll":
                _this81.table.modules.ajax.blockActiveRequest();
                _this81._getRemotePage().then(function () {
                    resolve();
                }).catch(function () {
                    reject();
                });
                break;

            default:
                console.warn("Pagination Error - no such pagination mode:", _this81.mode);
                reject();
        }
    });
}; 
 

В конце он загружается, но все данные, когда сервер возвращает только список json, но он завершается ошибкой при получении объекта, ожидаемого для удаленной разбивки на страницы.
У кого-нибудь была такая же проблема с удаленной нумерацией страниц и ajaxURLGenerator? У кого-нибудь есть идея, как это решить, не изменяя библиотеку?

Заранее спасибо

Комментарии:

1. можете ли вы опубликовать ссылку на скрипку JS, которая демонстрирует вашу проблему, нам нужно посмотреть, как настроена ваша таблица, чтобы указать вам правильный ответ.

2. Привет и спасибо за ваш ответ, к сожалению, у меня возникли некоторые трудности с воспроизведением его на jsfiddle из-за ajaxUrl, но, по крайней мере, код должен быть идентичным. Рабочая версия на моем компьютере (разбивка на страницы не выполняется, но она начинает загружаться): jsFiddle локальная разбивка на страницы как удаленная Ожидаемая реализация на основе документации : jsFiddle ожидаемая конфигурация удаленной разбивки на страницы Если вам нужно больше данных или пример, работающий локально, скажите мне. Еще раз спасибо