1

假設您想添加一些帶有rjs的ajax,並且想要異步添加html的元素是部分內的部分,這意味着您的主視圖會在您的共享文件夾,然後部分呈現您的共享文件夾中的另一個部分。當你打電話給page.insert_html :bottom, :partial =>...時,你如何在你的.rjs文件中解釋這一點,以及你如何在你的主視圖和兩個部分中對此進行解釋?在Ruby on Rails中使用rjs實現AJAX

回答

0

page.insert_html不考慮HTML的原始源是否是部分的 - 您只需要給它一個DOM ID(即<div id="foo">),以便它用作插入的參考點。

如果你知道你要插入通過AJAX的HTML,使元素有id,並用它作爲參數傳遞給page.insert_html


下面是一個例子。假設你有呈現以下視圖:

<div id="div_tag_in_home_page"> 
    <%= render :partial => "shared/container" %> 
</div> 

而且這些諧音:

<!-- app/views/shared/_container.html.erb --> 
<div id="container_div"> 
    <%= render :partial => "shared/sub_container" %> 
</div> 

<!-- app/views/shared/_sub_container.html.erb --> 
<div id="sub_container_div"> 
    Some Content That Needs Appending 
</div> 

其中,渲染的時候,給你這樣的:

<div id="div_tag_in_home_page"> 
    <!-- app/views/shared/_container.html.erb --> 
    <div id="container_div"> 
    <!-- app/views/shared/_sub_container.html.erb --> 
    <div id="sub_container_div"> 
     Some Content That Needs Appending 
    </div> 
    </div> 
</div> 

將內容添加到#sub_conainer_div使用部分名稱app/views/shared/_additional_content.html.erb,您可以使用:

page.insert_html :bottom, 'sub_container_div', :partial => 'shared/additional_content' 
+0

是的,我知道,這就是爲什麼我將'page.insert_html'的末尾留空的原因。我想知道我在哪裏添加'id':主頁,第一部分或部分內的部分? – 2011-03-03 06:13:04

+0

這取決於。哪個部分包含您想要添加內容的開始HTML標記? – 2011-03-03 06:40:21

+0

以及第一個標籤處於部分內部。我是否將部分名稱用作「共享/部分」? – 2011-03-03 06:52:28