Rails turbo 框架响应不触发 turbo:load

问题描述

我有一个使用 Turbo 的标准内联编辑,它将 show 视图的 Turbo 框架替换为 _form 中的 Turbo 框架。但在这种情况下,$(document).on "turbo:load",-> 事件不会触发。

我没有看到应该使用 another event。任何想法如何在替换涡轮帧的响应上运行 js? (例如在表单中初始化日期选择器)

解决方法

当框架加载仍在构建中时触发的事件:https://github.com/hotwired/turbo/pull/59

我们目前仅有的事件是 turbo:before-fetch-requestturbo:before-fetch-response,它们在每次 Turbo 更改帧或导航页面时在 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 控制器来包装您的日期选择器初始化,这样您就不必注意它进出 DOM。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...