我有一个使用Turbo的标准内联编辑,它将show
视图的Turbo帧替换为_form
中的Turbo帧。但是在这种情况下$(document).on "turbo:load", ->
事件没有被触发。
我看不到其他应该使用的事件。你知道如何在替换turbo帧的响应上运行js吗?(例如初始化表单中的日期选择器(
当框架负载仍在构建中时引发的事件:https://github.com/hotwired/turbo/pull/59
我们目前仅有的事件是turbo:before-fetch-request
和turbo:before-fetch-response
,每当Turbo更改帧或导航页面时,它们都会在document
级别触发。在事件触发时,框架的内容不会被加载,但它允许您潜在地使用框架的loaded
属性来挂起在框架加载时运行的promise。
$(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。