Rails Turbo 框架响应未触发 turbo:load

Rails turbo frame response not firing 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。