Turbo 轨道广播_刷新_to 未连接到刺激控制器

问题描述 投票:0回答:1

使用涡轮

8.0.4

博客模型:

  after_update_commit lambda { |blog| }
    broadcast_refresh_to blog
  }

在博客/show.html.erb中

<%= turbo_stream_from @blog %>
<%= tag.div data: {controller: "blogs"} do %>
  <!-- more content here -->
<% end %>

在 blogs_controller.js 中,我有逻辑在 connect 方法中重新初始化几个组件。

broadcast_refresh_to blog
成功刷新页面,但由于
morphing
而未执行刺激控制器中的connect方法。

如何解决这个问题?

ruby-on-rails stimulusjs hotwire-rails turbo-rails stimulus-rails
1个回答
0
投票

我找到了解决这个问题的另一个巧妙的解决方案。

只需将

yield(:head)
添加到您的
layout.html.erb
:

<!-- app/views/layouts/application.html.erb -->

<html>
  <head><%= yield :head %></head>
  <body><%= yield %></body>
</html>

然后将以下方法之一添加到您的页面:

turbo_page_requires_reload

turbo_refreshes_with(method: :replace, scroll: :reset)

现在,一旦您访问页面或发送

broadcast_refresh_to
命令,它将完全重新加载,从而导致 Stimulus 控制器重新连接。

更多详细信息请参见:https://github.com/hotwired/turbo-rails/blob/main/app/helpers/turbo/drive_helper.rb

© www.soinside.com 2019 - 2024. All rights reserved.