Повторное использование стимулирующего действия в другом месте страницы?
Я подключаю слабый клон (html / css) и получаю его так, чтобы справочный ящик открывался / закрывался, когда я нажимаю на x. Я также хочу открыть / закрыть его из области навигации и подумал, что могу просто взять тот же link_to и вызвать его из другой части страницы.
Но когда я это делаю, если я вызываю его из другой цели, я получаю сообщение об ошибке
Error invoking action "click->navigation#toggle_reference_drawer"
Error: Missing target element "navigation.referenceDrawer"
Как я могу использовать код внутри целевого объекта данных для запуска другого целевого объекта данных?
то есть то, что я пытаюсь заставить работать, это
- частичная навигация (link_to не работает) -
<div data-navigation-target="storyNavLinks">
<div class ="story">
<%= link_to "[x]", "#", data: { action: "click->navigation#hide_reference_drawer" } %>
</div>
</div>
- приложение частичное (link_to работает) -
<div data-navigation-target="referenceDrawer">
<div class='reference box'>
<%= link_to "[x]", "#", data: { action: "click->navigation#hide_reference_drawer" } %>
</div>
</div>
Не уверен, где я ошибаюсь ... Я решил, что до тех пор, пока цель, на которую ссылаются, уникальна и на странице не должно иметь значения, откуда она вызывается?
1 ответ
Вы должны убедиться, что ваш
data-controller
Атрибут находится в элементе, который охватывает обе цели. Если это невозможно, вы всегда можете включить контроллер дважды, но цели будут привязаны только к каждому экземпляру, поэтому вам нужно будет добавить их дважды.