【问题标题】:how can I get will_paginate working with ajax?我怎样才能让 will_paginate 与 ajax 一起工作?
【发布时间】:2013-05-07 19:16:15
【问题描述】:

到目前为止,我已经学习了一些教程,但都没有成功。我正在使用 ajax_pagination。当我单击第二页的链接时,服务器日志显示如下: 在 2013-05-07 14:05:49-0500 开始 GET "/?page=2&=1367953277288" for 127.0.0.1
AddressesController#index 作为 JS 处理 参数:{"page"=>"2", "
"=>"1367953277288"} 地址加载 (0.9ms) SELECT "addresses".* FROM "addresses" LIMIT 5 OFFSET 5 渲染地址/_addresses.html.erb (6.7ms) 渲染地址/index.html.erb (8.4ms) 在 10 毫秒内完成 200 次 OK(查看次数:9.0 毫秒 | ActiveRecord:0.9 毫秒)

所以看起来请求是正确的,但是页面上没有任何变化。这是我的部分 _addresses 代码:

<%= ajax_loadzone do %>
<% @addresses.each do |address| %>
blah blah
<%end%>

<%= ajax_links :section_id => 'page' do %>
<%= will_paginate @addresses %>
<% end %>

控制器: ajax_respond 格式,:section_id => "page", :render => "addresses"

索引视图: 'page', :render => 'addresses' %>

这不是我的全部代码,而是相关的部分。

【问题讨论】:

  • 我也在同样的问题上苦苦挣扎,你使用了什么资源? Railscast 我的,我遵循这一步,但在我的应用程序的那一步上,我可以遵循 Ryan Bates 所说的。我的代码和他的代码的不同之处在于liveonlive 已被弃用,我们知道),而pagination.js 上的js 和application.js 上的我的代码:(

标签: ruby-on-rails ajax will-paginate pagination


【解决方案1】:

请CMIIW,我通过设置jQuery分页同时重新渲染我们要渲染的部分找到了解决我的问题的方法。

application.js:

jQuery.ajaxSetup({
  'beforeSend': function(xhr) {xhr.setRequestHeader("Accept", "text/javascript")}
})

$.fn.ajaxPagination = function() {
  this.on("click", function () {
    $.get(this.href, null, null, "script");
    return false;
  });
}

$(document).ready(function() {
  $( ".pagination a" ).ajaxPagination();
})

controller:

def index
  @addresses = Address.pagination(params[:page])

  respond_to do |format|
    format.html # index.html.erb
    format.json { render json: @order_requests }
    format.js
  end
end

开启model

def self.pagination(page)
  paginate(:per_page => 5, :page => page)
end

假设index.js.erb

$('#page').html("<%= escape_javascript(render('addresses')) %>");
$(".pagination a").ajaxPagination();

等到此为止,如有错误请指正,谢谢。

【讨论】:

    猜你喜欢
    • 2013-03-28
    • 2012-04-22
    • 2017-12-24
    • 2014-10-21
    • 1970-01-01
    • 2013-08-24
    • 2013-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多