2010-10-13 86 views
0

我想分頁使用jQuery。我正在使用will_paginate寶石。它正常工作(沒有JavaScript)。我嘗試了一個railscast(http://railscasts.com/episodes/174-pagination-with-ajax),但我仍然有問題。如果存在RoR代碼,jQuery調用partial將無法工作?

show.js.erb

$('#comments').html("<%= escape_javascript(render "comments/comment.html.erb") %>"); 

這工作時,部分文件僅僅是HTML。 IE no <%code like this%>。爲什麼? .html是錯誤的jQuery函數嗎?我應該使用什麼?

從艱難讓事情,這段代碼可能是問題:

$(".pagination a").click(function() { 
    //$(".pagination").html("Page is loading..."); 
    $.get(this.href, null, null, "script"); 
    return false; 
    }); 

什麼是「劇本」?

回答

0

多少修修補補後,我發現我的問題:

我將此添加到我的部分:

<%= will_paginate @comments %> 
<% @comments.each do |comment| %> 
//partial stuff 
<% end %> 

的截屏並沒有表現出他在那裏把will_paginate線,所以我估計它留在發佈文件。它也沒有在部分文件中顯示循環。我沒有意識到你必須這樣做,因爲當你調用一個部分文件時,無論如何,rails都會這樣做。

+0

也呈現@comments使重複,而渲染評論/評論不。 – 2010-10-15 15:49:29

0

雖然我不知道紅寶石,根據你的聯繫,缺少一對括號的頁面:

$('#comments').html("<%= escape_javascript(render("comments/comment.html.erb")) %>");

+0

謝謝,但這沒有什麼區別:) – 2010-10-13 22:48:11

+1

對不起,我試過=/ – Ben 2010-10-13 22:50:56

0

我不使用紅寶石和我相當外行到jQuery的,但是如果我正確解釋了這一點,那麼您試圖將HTML添加到完全位於客戶端上的元素,然後期望在其中解析服務器端標記。

此代碼從不在服務器上執行。爲了獲得服務器端標記的解析,你需要實際執行另一個服務器請求(例如使用XMLHttpRequest),這可能會在服務器上處理一個帶有這個確切標記的文件,然後處理服務器端請求 - 方指令。

您可能會對此感興趣jQuery's load function