ruby-on-rails - Rails turbo 帧响应未触发 turbo:load
问题描述
我有一个使用Turboshow
的标准内联编辑,它将视图的涡轮框架替换为_form
. 但$(document).on "turbo:load", ->
在这种情况下,事件不会触发。
我没有看到另一个应该使用的事件。任何想法如何在替换涡轮框架的响应上运行 js?(例如在表单中初始化日期选择器)
解决方案
框架加载时触发的事件仍在构建中:https ://github.com/hotwired/turbo/pull/59
我们目前拥有的唯一事件是turbo:before-fetch-request
and ,每次 Turbo 更改框架或导航页面时都会turbo:before-fetch-response
在关卡中触发。document
框架的内容在事件触发时不会被加载,但它允许您潜在地使用框架的loaded
属性来连接在框架加载时运行的承诺。
$(document).on("turbo:before-fetch-response", (e) ->
frame = document.getElementById("myFrame")
# Frame has finished loading
if frame.complete
#run my code
else
# Frame is still loading, run this code when it finishes
frame.loaded.then () ->
# run my code
否则,您可以编写一个 Stimulus 控制器来包装您的 datepicker 初始化,这样您就不必注意它进出 DOM。
推荐阅读
- css - 悬停在一个 div 上会点亮另一个对应的
- javascript - 为什么俄罗斯方块会一次全部掉落而不是一次掉落?
- flutter - 异步方法在颤动中返回null
- graphql - GraphQL 查询返回 null。不知道为什么
- java - 如何将我的 while 循环转换为 for 循环?
- flutter - 有没有办法配置 willPopScope 来捕捉自定义弹出导航?
- sql-server - 表上 3 个月的滚动平均值
- python - PyTorch 训练了哪些 ImageNet 类?
- mysql - MariaDB - 使用 CAST 准备语句时的行为不一致
- php - PHP脚本循环字符串