首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails Turbo不触发turbo:load事件

Rails Turbo不触发turbo:load事件
EN

Stack Overflow用户
提问于 2022-02-09 00:26:39
回答 1查看 1.7K关注 0票数 4

turbo:load事件不会在turbo访问之后触发(正如文档所说的那样)。它的工作方式,如预期后,最初的满页加载。我可以捕获“turbo:response”事件,但对于turbo:load,:render,:frame,:frame,我没有运气。

我的turbo_stream请求是格式化TURBO_STREAM来销毁附件。控制器响应是

代码语言:javascript
复制
respond_to do |format|
  format.turbo_stream do
    render 'attachments/delete_document',
               locals: { target: "docs-list-#{img.id}" }
  end
end

我正在返回两个turbo流,它们的更新和删除操作按预期工作:

代码语言:javascript
复制
<turbo-stream action="remove" target="<%= target %>">
  <template></template>
</turbo-stream>

<turbo-stream action="update" target="flash_messages">
<template>
  <%= render partial: 'layouts/flash', formats: :html,
             locals: { type: :notice,
                       message: 'Attachment removed.' } %>
</template>
</turbo-stream>

(注:这是另一个帖子的颠簸。这里提出的解决方案在我的情况下行不通,因为完整的属性只存在于HTML img元素。)(我在Rails 7.0.1中使用@hotw毛/turbo@^7.1.0、@hotwired/turbo-rails@^7.1.1 )

EN

回答 1

Stack Overflow用户

发布于 2022-05-05 18:50:08

我用turbo:render事件解决了这个问题:

代码语言:javascript
复制
document.addEventListener('DOMContentLoaded', startFrontController)
document.addEventListener('turbo:render', startFrontController)

function startFrontController(event) {
  document.removeEventListener('DOMContentLoaded', startFrontController)
  new FrontController().start()
}

参见Turbo文档:https://turbo.hotwired.dev/reference/events

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71042588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档