带有 will_paginate 的 jQuery 无尽页面在 Rails 中不起作用

2024-01-23

我正在尝试实现 Railscasts 第 114 集中所示的无限页面功能。分页效果很好,但无限页面功能根本不会触发。我没有看到任何错误;只是分页,就好像我没有添加无尽的页面 javascript 一样。我的代码:

活动控制器

class ActivitiesController < ApplicationController
    before_filter :authenticate_user!
  def index
    @activities = PublicActivity::Activity.order("created_at DESC").where(owner_type: "User", owner_id: current_user.followed_users.map {|u| u.id}).page(params[:page]).per_page(15)
    @post = current_user.posts.build

     respond_to do |format|
      format.html
      format.json
      format.js 
    end
  end
end

活动.js.coffee

jQuery ->
  if $('.pagination').length
    $(window).scroll ->
      url = $('.pagination .next_page').attr('href')
      if url && $(window).scrollTop() > $(document).height() - $(window).height() - 50
        $('.pagination').text("Loading more activities...")
        $.getScript(url)
    $(window).scroll()

索引.js.erb

$('#activities').append('<%= j render ('shared/activities') %>');
<% if @activities.next_page %>
  $('.pagination').replaceWith('<%= j will_paginate('shared/activities') %>');
<% else %>
  $('.pagination').remove();
<% end %>
<% sleep 1 %>

共享/_activities.html.erb

<div class="activities">
<% @activities.each do |activity| %>
<code>
<% end %>
<%= will_paginate @activities %>
</div>

问题肯定出在 javascript 上,但我无法弄清楚。关于可能导致该问题的原因有什么想法吗?

谢谢! -b


我设法在 Rails 4 中没有“index.js.erb”文件的情况下做到了这一点。只需添加这个咖啡脚本:

$(window).on 'scroll', ->
  if $('.pagination').length
    @url = $('.pagination .next_page').attr('href')
    if url && $(window).scrollTop() > $(document).height() - $(window).height() - 50
      $('.pagination').remove()
      $('#articles').append('<div>')
      $('#articles div').last().load @url+' #articles', ->
          if $('.next_page.disabled').length
            $('.pagination').remove()

这将加载下一页,然后在新加载的页面上使用分页,直到没有更多的下一页。只需将脚本中的“#articles”替换为容器的 ID 即可。跳过index.js.erb 和respond_to jazz。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带有 will_paginate 的 jQuery 无尽页面在 Rails 中不起作用 的相关文章