链接到涡轮帧不工作,导航整个页面



我有以下代码:

<%= turbo_frame_tag :my_frame do %>
frame
<% end %>
<%= link_to "About", about_path, data: { turbo_frame: :my_frame } %>

点击"About"链接,框架的内容不会更新。相反,整个页面导航到about_path

我知道这不是上面代码的问题,因为我在一个新的应用程序上测试了相同的代码,它工作得很好。这个应用程序的一些不同之处使得这个涡轮帧链接不起作用。

任何想法?

这是一个迟来的答案,但是我在遇到同样的问题后偶然发现了你的问题。在我的例子中,我试图在表中使用turbo_frame_tag,但它不能工作,因为表不接受任何其他元素,但它自己:https://github.com/hotwired/turbo/issues/48

结果是您必须将响应包装在相同的命名turbo标签中。

第一次通话

<%= turbo_frame_tag :my_frame do %>
frame content
<% end %>

你的回复应该这样包装:

<%= turbo_frame_tag :my_frame do %>
response generated on server.
<% end %>

在我的例子中,这是因为没有在application.js中导入hotwire。我只是添加了:import "@hotwired/turbo-rails",它就完成了。

这很奇怪,因为我在涡轮轨道gem中没有看到任何关于它的要求,并且在运行安装rake任务后没有这些更改。

My app is on rails .

在link_to标签中应该是data: {"turbo-frame"=> "my_frame"}。我认为它没有把my_frame理解为一个符号,或者是哈希中的turbo_frame键。

我刚刚解决了类似的情况。问题是我请求的视图的-标签中有一个错别字。这个错误在控制台显示为:

响应中缺少#show_client的匹配帧,转换为整页访问。

意思是你应该确保你请求的资源是有序的,否则Rails会退回到整页替换你的链接正在请求的内容。

这可能是我的情况,但我也有同样的问题。

结果是它在一个刺激控制器的范围内,我在我的链接所在的父元素之一上有一个.stopPropagation()

移除.stopPropagation()可以使涡轮框架链接再次正常工作。

我假设您正在重写导航。根据文档,您的代码应该是

<%= turbo_frame_tag :my_frame do %>
frame

<%= link_to "About", about_path %>
<% end %>

试一试:

在终端yarn add @hotwired/turbo-rails执行命令

next添加行import "@hotwired/turbo-rails"intoapp/javascript/application.js

和运行轨道bin/dev代替rails s

它适合我。

相关内容

  • 没有找到相关文章

最新更新