kaminari ajax分页不更新分页

时间:2011-04-01 20:41:59

标签: ruby-on-rails ajax pagination

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

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

遗憾的是,以下代码

jQuery('#paginator').html('<%= escape_javascript(paginate(@recipes,:remote=>true).to_s) %>');

似乎没有用。

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

  jQuery('a','nav.pagination').click(function(){
         // get the page value from href
          var page = jQuery(this).attr('href').replace('/home/index?page=','');
          jQuery.getJSON('?page='+page, function(data){
                 for (var r in data){
                   results.push(data[r]);
          });
              showResults(results,(page-1)*10);
              jQuery('#paginator').html('<%= escape_javascript(paginate(@recipes,:remote=>true).to_s) %>');
  });

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

我在firebug中没有任何错误,我使用Rails 3和ruby 192。

2 个答案:

答案 0 :(得分:1)

你确定HTML中的paginator有'#paginator'元素吗? 我的意思是,以下代码是否返回Firebug上的元素?

jQuery('#paginator')

答案 1 :(得分:0)

要更新结果和分页,您需要一次更新两者。 Paginate AJAX以JS的形式发送请求以便处理它们你应该在view文件夹中有action.js.erb文件。在这里做两件事。

1)更新结果

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

2)更新Paginate

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

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