2013-09-01 120 views
0

我使用will_paginate gem和ajax在每次用戶點擊「more」時追加下一頁到我的索引的底部 - 我注意到的問題是過去的第二頁,點擊更多隻是附加第二頁 - 我錯過了什麼?Rails will_paginate和ajax附加頁

index.html.erb

<ul class="items" id="event-index"> 
<%= render 'events' %> 
</ul> 
<%= will_paginate @events, :previous_label => '', :next_label => 'More', :remote => true %> 

index.js.erb的

$('#event-index').append('<%= escape_javascript(render("events")) %>'); 

<% if @events.total_pages == @events.current_page %> 
    $('.pagination').remove(); 
<% end %> 
<% if @events.current_page %> 
    $('.ajaxload').hide(); 
<% end %> 

回答

0

您的設置的問題是,顯示下一頁的鏈接沒有得到更新。它總是顯示第二頁。我能想到的最簡單的解決方案是始終刪除分頁並重新提交。

$('#event-index').append('<%= escape_javascript(render("events")) %>'); 
$('.pagination').remove(); 

<% if @events.next_page %> 
    $('#event-index').after('<%= will_paginate @events, :previous_label => '', :next_label => 'More', :remote => true %>'); 
<% end %> 

<% if @events.current_page %> 
    $('.ajaxload').hide(); 
<% end %> 
+0

謝謝,這個問題是渲染的網址爲http://本地主機:3000 /事件_ = 1378058046263&頁= 3,然後殺死Ajax請求,並使其加載第3頁爲一整頁加載 –

+0

我認爲這裏的問題是javascript函數沒有被重新加載,因此URL以這種方式返回 '$(function(){ $(「。pagination a」)。on(「click」,function (事件){ \t \t $( 'ajaxload。')顯示(); $ .getScript(this.href); 返回FALSE; }); });' –

+0

你確定你在'index.js.erb'的鏈接中添加了'remote:true'嗎?應該觸發ajax請求。 – jvnill