2013-10-25 38 views
1

我真的在如何讓我的應用程序的最後一步完成綁定。使用rails和ajax動態呈現內容。

我想動態替換主要內容,而不需要刷新頁面。

的application.html.erb看起來是這樣的:

<div id="wrapper"> 
     <!-- ><div id="headcontainer"> 
      <header> 
      </header> 
     </div> --> 
     <div id="maincontentcontainer"> 
      <div id="maincontent"> 
       <div class="section group"> 
        <div class="col span_1_of_7"> 
         <%= render :partial => "shared/menu" %> 
        </div> 
        <div id="replace"> 
         <%= yield %> 
        </div> 
       </div> 
      </div> 
     </div> 

我有我的菜單部分點擊它時,我想動態更換#replace div的內容

<ul class='kwicks kwicks-vertical'> 
    <li id='panel-1'><%= link_to_unless_current image_tag('keyIssues.png'), :remote => true %></li> 
    <li id='panel-2'><%= link_to_unless_current image_tag('pollVsLeader.png'), :remote => true %></li> 
    <li id='panel-3'><%= link_to_unless_current image_tag('keyBubble.png'), :remote => true %></li> 
    <li id='panel-4'><%= link_to_unless_current image_tag('dataSource.png'), :remote => true %></li> 
    <li id='panel-5'><%= link_to_unless_current image_tag('group14.png'), :remote => true %></li> 
</ul> 

我一些Jquery,我用它來刪除div並將其替換..但它是用頁面的填充內容替換div。頁面內的頁面在這裏是一些代碼:

$(function(){ 
    $('#panel-1').click(function(){ 
    $("#remove").remove(); 
    $.get('../key_issues/index.html', function(html){ 
     $('.col.span_6_of_7').remove(); 
     $('.section.group').append(html); 
    }); 
    }); 
}); 

我已經嘗試過ajax-rails gem,但是我無法讓它工作。有人可以提供一些建議嗎?

回答

4

簡單的方式

<li id='panel-1'><%= link_to image_tag('keyIssues.png'), some_path_to_url_controller , :remote => true %></li> 

控制器代碼

def some_method 
//your code 
respond_to do |format| 
    format.js 
end 
end 

some_method.js.erb

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

欲瞭解更多信息railscast

+0

感謝您的回覆..您能否解釋控制器代碼..? –

+0

將您的鏈接設置爲true,它將搜索js格式的響應。你做什麼你想要在替換div中顯示。 – Debadatt

+0

具體來說,鏈接將提交一個Ajax請求來調用控制器中的遠程函數,隨後查詢一些數據並返回一個JS對象到頁面。用ajax替換內容/部分。 – Debadatt