Как использовать Ajax-ссылки с якорями в Rails - PullRequest
0 голосов
/ 11 июня 2018

Я пытаюсь создать навигационную панель, которая использует AJAX для переключения между страницами и может ссылаться на якоря на этих страницах в приложении Rails 5.1.

Из того, что я прочитал, следующий код должен работать, но не работает.

<%= link_to @section.title, from_nav_path(@topic, anchor: @section.css_id), remote: true %>

(Если это еще не ясно, Разделы has_many и Раздел * Раздела * 1009)

Я прочитал, это сообщение stackoverflow, а также эти две справочные страницы ( api doc и mix and go ).

Когда он не настроен как remote: true, он прекрасно работает черездействие show, но я не хочу перезагружать страницу.

В настоящее время он меняется на правильную страницу, но остается только в верхней части страницы, а не после привязки.Чего мне не хватает, чтобы заставить эту работу?

Я также попытался добавить коллбэк javascript независимо и совместно к загружаемому фрагменту и файлу from_nav.js.erb.Все безрезультатно.

1 Ответ

0 голосов
/ 11 июня 2018

Вы не можете использовать опцию привязки с пультом.Якорь - это фрагмент текста, который отмечает начало и / или конец гипертекстовой ссылки.Но remote - это вспомогательный метод в Rails, который добавляет к тегу data-remote="true" атрибут, и тогда Rails знает, что нужно отправить XHR-запрос.Якорь не работает с запросами XHR.Таким образом, вы можете добавить JavaScript в вашей from_nav.js.erb до прокрутки к элементу

var elmnt = document.getElementById("<%= @section.css_id %>");
elmnt.scrollIntoView();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...