kaminari ajax 分页不更新分页

Posted

技术标签:

【中文标题】kaminari ajax 分页不更新分页【英文标题】:kaminari ajax pagination not updating the paginate 【发布时间】:2011-07-27 23:29:09 【问题描述】:

我正在使用 kaminari gem 在 rails3 中实现分页。

我一直在关注 github 上的这段代码 https://github.com/amatsuda/kaminari_example/commits/ajax

不幸的是,下面的代码

jQuery('#paginator').html('true).to_s) %>');

似乎没有工作。

我的 javascript 用于用户选择页面的操作是

jQuery('a','nav.pagination').click(function() // 从href中获取页面值 var page = jQuery(this).attr('href').replace('/home/index?page=',''); jQuery.getJSON('?page='+page, function(data) for (var r in data) 结果.push(数据[r]); ); showResults(结果,(page-1)*10); jQuery('#paginator').html('true).to_s) %>'); );

showResults 函数通过 JSON 运行并创建一堆 html 元素。 一切都很好,除了重新加载结果时分页没有更新以显示当前页面。

我在 firebug 中没有收到任何错误,我正在使用带有 ruby​​ 192 的 Rails 3。

【问题讨论】:

【参考方案1】:

您确定您的 HTML 中有分页器的“#paginator”元素吗? 我的意思是,以下代码是否返回 Firebug 上的元素?

jQuery('#paginator')

【讨论】:

是的,firebug 发现 id='paginator' 没问题。不知道为什么这不起作用。虽然我正在考虑用滑块替换“分页链接”,所以我可能不会担心。【参考方案2】:

为了更新结果和分页,您需要同时更新两者。 Paginate AJAX 将请求作为 JS 发送,因此要处理它们,您应该在 view 文件夹中有 action.js.erb 文件。在这里执行两件事。

1) 更新结果

$("#issues").html("<%= j render(:partial => 'recipes') %>");

2) 更新分页

$('.pagination').html('<%= escape_javascript(paginate(@recipes, :remote => true).to_s) %>');

找到相应的页面属性来更新分页。这将更新结果和分页运行时间。

【讨论】:

以上是关于kaminari ajax 分页不更新分页的主要内容,如果未能解决你的问题,请参考以下文章

使用 Ajax 的 Rails Kaminari 分页

kaminari 通过 ajax 分页,remote = true 不影响 Rails 3 中的视图

Rails 3 分页,will_paginate 与 Kaminari

使用 Ajax 调用的 Extjs Grid 分页不起作用

分页破坏了 RSpec 测试(Kaminari)

ruby kaminari + JSON API分页助手