因此,假设您要使用rjs添加一些ajax,并且要异步添加html的元素是局部中的一个部分,这意味着您的主视图在共享文件夹中呈现了一个局部,然后该局部在您的共享文件夹。调用page.insert_html :bottom, :partial =>...
时,如何在.rjs文件中解决此问题,又如何在主视图和两个部分中解决此问题?
最佳答案
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'
关于javascript - 在Ruby on Rails中用RJS实现AJAX,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5177198/