我正在使用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。
答案 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) %>');
查找相应的页面属性以更新分页。这将更新结果和分页运行时间。