Ruby on Rails, украшающий фильтр Filterrific на странице просмотра с функцией select2 - PullRequest
0 голосов
/ 21 декабря 2018

Моя цель: переназначить существующие элементы формы Filterrific в моем приложении ROR, чтобы воспользоваться преимуществами функций select2

Мой прогресс:

Шаг 1 - Добавить класс 'select2' для просмотра формы страницы индекса Singleполе элемента select - завершено.

Шаг 2. Создание экземпляра объекта select2 в моем документе сценария кофе с папкой активов, указание моей темы, языка и иногда добавление текста-заполнителя - завершено

$('#filterrific_with_group_id').select2({
  theme: 'bootstrap',
  language: 'en',
  width: '100%'
});

Тест 1 - Запустить просмотр в браузере - завершено, поля ведут себя как положено.Тест 2 - Выберите элемент из результатов поиска и отойдите от страницы индекса, вернитесь назад с помощью кнопки «Назад» в браузере - завершено

Теперь отображаются два поля поиска, а DOM показывает два элемента диапазона под элементом поиска

  • В одном содержится мое ранее выбранное значение - это поле отключено
  • Два - это недавно созданная версия моего поля выбора - оно включено, но операция поиска работает не так, как ожидалось.

Шаг 3 - Вставьте условный оператор в мой документ сценария кофе, чтобы выполнить следующее:

  1. Прежде чем создавать экземпляр моего класса select2, изучите элемент выбора DOM, проверивдля существования класса 'select2-hidden-available'

  2. Если найдено, выполните .select2 ('destroy'), который удаляет один из элементов span ниже поискового элемента

if $('#filterrific_with_group_id').hasClass('select2-hidden-accessible'))
  $('#filterrific_with_group_id').select2('destroy')
Продолжить создание экземпляра объекта select2 в обычном режиме.

Тест 3 - повторить тесты 1 и 2 и посмотреть результаты

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

Однако элемент отключается до тех пор, пока страница индекса не обновляется с нуля, стирая мой исходный выбор.Это не тот результат, которого я пытаюсь достичь.Мой желаемый результат состоит в том, что поле select2 остается активным и функционирует, как и ожидалось, с исходным выбранным значением, даже после перехода от страницы индекса и возврата.

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

Пожалуйста, будь моим новым взглядом и направь меня в правильном направлении.К сожалению, я не могу опубликовать код, потому что я занимаюсь разработкой на машине с сильно ограниченными правами сети.Надеюсь, я достаточно хорошо описал сценарий, чтобы кто-то мог его понять.

...