因此,假设您要使用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/

10-10 00:00