小编stu*_*eba的帖子

Stimulus js 跨控制器事件上下文

我有两个独立的刺激控制器。一个用于管理表,另一个用于触发表的新行。

我在页面上有一个按钮,调用turbo-table-new-row#show函数,它确实调度事件并调用turbo-table#show函数,但我似乎无法访问turbo-表的“this”,所以我无法访问目标、值等......

如果我将按钮移动到涡轮表的范围内,我不需要第二个控制器,一切都会正常工作。但是,从 UI 角度来看,这是行不通的。

收到事件后如何访问接收控制器的“this”?

 <div data-controller="turbo-table-new-row turbo-table"
      data-action="turbo-table-new-row:show->turbo-table#display">

    <button data-action="click->turbo-table-new-row#show">
 </div> 
Run Code Online (Sandbox Code Playgroud)
 // turbo-table-new-row-controller

  show(e) {
   this.dispatch("show", { detail: { url: e.params.url} })
  }
Run Code Online (Sandbox Code Playgroud)
  // turbo-table-controller
show(e) {
        console.log("[turbo_table] - turbo-table-new-row->show event")
        console.log(e.detail.url)

  // I don't have access to the turbo-table-contoller 'this'

  this.hasPanelTarget ...

}
Run Code Online (Sandbox Code Playgroud)

stimulusjs ruby-on-rails-7

4
推荐指数
1
解决办法
2379
查看次数

标签 统计

ruby-on-rails-7 ×1

stimulusjs ×1