【问题标题】:Re-using a stimulus action elsewhere on the page?在页面的其他地方重复使用刺激动作?
【发布时间】:2021-06-14 07:35:02
【问题描述】:

我正在连接一个松弛克隆 (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>
 

不知道我哪里出错了。我认为只要被引用的目标是唯一的并且在页面上它从哪里被调用就无关紧要了吗?

【问题讨论】:

    标签: stimulusjs ruby-on-rails-6.1


    【解决方案1】:

    您必须确保您的 data-controller 属性位于包含两个目标的元素上。如果这不可能,您始终可以将控制器包含两次,但目标将仅作用于每个实例,因此您还需要将它们添加两次。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-08
      • 1970-01-01
      • 2011-12-31
      • 1970-01-01
      • 2018-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多