gpt4 book ai didi

javascript - Rails 5 使用 will_paginate 创建加载更多按钮

转载 作者:行者123 更新时间:2023-11-29 15:16:17 26 4
gpt4 key购买 nike

所以我正在尝试创建一个加载更多按钮(不是无限滚动,尽管一些简单的 js 调整可以做到这一点)。我在 Rails 5 中使用 will_paginate gem。

它目前都按预期工作,除了当我单击“加载更多”时它会加载下一页帖子两次,例如:加载更多 >帖子 4,帖子 5,帖子 6,帖子 4,帖子 5,帖子 6

仅供引用,我的“帖子”是@links:

links_controller.erb

def index
@links = Link.order('created_at DESC').paginate(:page => params[:page], :per_page => 3)
respond_to do |format|
format.html
format.js
end
end

views/links/index.html.erb

<div class="link-wrap">
<%= render @links %>
</div>
<% if @links.next_page %>
<div class="link more">
<%= link_to 'Load More', links_path(:page => @links.next_page), :class => 'next_page', :remote => true if @links.next_page %>
</div>
<% end %>

pagination.js.coffee

$ ->
$('.next_page').on 'click', (e) ->
e.preventDefault()
url = $(this).attr('href')
$.getScript(url)

index.js.erb

$('.link-wrap').append('<%= j render(@links) %>');
<% if @links.next_page %>
$('.next_page').attr('href','<%= links_path(:page => @links.next_page) %>');
<% else %>
$('.more').remove();
<% end %>

对于我的生活,我无法弄清楚为什么在单击“加载更多”时它会呈现两次链接。这似乎是一件非常简单的事情,但我正在努力。

最佳答案

所以这当然是一个愚蠢的错误。

删除 index.html.erb 上的行:

:remote => true if @links.next_page

现在看起来像这样:

<div class="link-wrap">
<%= render @links %>
</div>
<% if @links.next_page %>
<div class="link more">
<%= link_to 'Load More', links_path(:page => @links.next_page), :class => 'next_page' %>
</div>
<% end %>

现在一切正常!

关于javascript - Rails 5 使用 will_paginate 创建加载更多按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48960789/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com