Я использую DataTables в сочетании с библиотекой JS под названием «Turbolinks», который в основном превращает ваше приложение на одной странице заявки (SPA) без всех накладных расходов, с помощью истинного на стороне клиента фреймворк. Это чрезвычайно полезно для производительности приложений Ruby on Rails.
Есть пара головных болей, которые он представляет, хотя одно - совместимость с DataTables. У меня это работает очень хорошо, в основном уничтожая любой DataTable на навигационной панели Turbolinks, а затем снова инициализируя его на загрузке страницы turbolinks. Этот метод работает хорошо и, кажется, является универсальным принятым ответом на лучшую практику получения DataTables для работы с Turbolinks.
Вопрос:
На последних функций/штрихи Я пытаюсь добавить некоторые из моих приложений DataTable сохранение состояния. Проблема, с которой я сталкиваюсь, заключается в том, что каждый раз, когда таблица разрушается/повторно инициализируется при навигации по страницам, ... Я на самом деле не совсем уверен, как это назвать, но похоже, что вы проверяете объект настроек на stateSaveCallback - это выглядит как сво sInstance
и/или sTableId
:
DataTables_Table_0
Затем ключ LocalStorage получает значение как:
DataTables_DataTables_Table_0_/current_path: "{data: data}"
где current_path является то, что путь/страница вы на.
Затем, когда он возвращается в исходное состояние после возвращения на страницу, он устанавливается как DataTables_Table_1
и т. Д. И т. Д. - поэтому состояние никогда не будет правильно загружено.
Есть ли способ переопределить этот идентификатор (или каким-либо образом установить его имя в stateSaveCallback
/stateLoadCallback
), чтобы он не увеличивал последние «0», «1» и т. Д. В конце Это? Таким образом, когда таблица будет повторно инициализирована, она вытащит сохраненное состояние только с DataTables_Table/current_path
?