首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带rails的Hotwire/Turbo :分页

带rails的Hotwire/Turbo :分页
EN

Stack Overflow用户
提问于 2022-06-16 12:09:51
回答 2查看 443关注 0票数 1

我想用turbo实现一个简单的寻呼系统。

代码语言:javascript
复制
<h1> Title </h1>
<%= turbo_frame_tag "page" do %>
  current page : <%= params[:page] %>
<% end %>
<p> other content </p>
<%= turbo_frame_tag "next" do %>
  <a href="?page=<%= params[:page].to_i + 1 %>">
   Next page
  </a>
<% end %>

得到?page=1

返回(当出现params:page时,控制器呈现部分)

代码语言:javascript
复制
<%= turbo_frame_tag "page" do %>
  current page : <%= params[:page] %>
<% end %>

<%= turbo_frame_tag "next" do %>
  <a href="?page=<%= params[:page].to_i + 1 %>">
   Next page
  </a>
<% end %>

但只有#next元素才能重新加载,

当我将target: "page"添加到#next时,只有第一个turbo框架被重新加载。

我们能把多个目标放到一个turbo_frame_tag上吗?或者有什么正确的方法来做到这一点?

先谢谢你

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-06-18 03:37:43

到目前为止,turbo frame只被一帧(从响应中)取代。如果要替换多个帧,可以使用turbo stream

因此,您可以将分页next帧移动到page帧中,并且只响应page帧:

代码语言:javascript
复制
<%= turbo_frame_tag "page" do %>
  current page : <%= params[:page] %>

  <p> other content </p>
  
  <a href="?page=<%= params[:page].to_i + 1 %>">
    Next page
  </a>
<% end %>

或者使用turbo-stream

代码语言:javascript
复制
<h1> Title </h1>
<%= turbo_frame_tag "page" do %>
  current page : <%= params[:page] %>
<% end %>
<p> other content </p>
<%= turbo_frame_tag "next" do %>
  <%= button_to "next", query_page_path(page: params[:page].to_i + 1) %>
<% end %>

# pages_controller
def query
  # query pages
  respond_to do |format|
    format.turbo_stream { }
  end
end

# pages/query.turbo_stream.erb
<%= turbo_stream.replace "page" %>
<% end %>

<%= turbo_stream.replace "next" %>
<% end %>

参考资料:https://github.com/hotwired/turbo/issues/56

票数 1
EN

Stack Overflow用户

发布于 2022-06-17 05:35:15

代码语言:javascript
复制
<%= turbo_frame_tag "page", target "next" do %> 
current page 
<%= params[page] %> 
<% end %> 
<%= turbo_frame_tag "next" do %> 
<a href="?page=<%= params[page].to_i + 1 %>">Next page</a> 
<% end %>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72645610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档