我有一个 rhtml 部分“mypartial”,其中包含一个如下所示的 js block :
<script type="text/javascript">new Ajax.Updater([...]);</script>
在 rjs 模板中,我调用
page.replace "container", :partial => "mypartial"
除了脚本 block 之外,替换工作正常。该 block 及其 javascript 不会写入 html(我使用 firefox/web dev 工具栏 -> 显示生成的源进行检查)。
我真的必须通过页面 << "myjs()"; 在我的 rjs 模板中编写 js 部分吗?
最佳答案
我觉得很奇怪,您的 page.replace
会省略脚本标记...如果您使用 javascript_tag
帮助程序怎么办?它也省略了吗?
另一种选择是将该 JavaScript 包含在从布局加载的 JavaScript 文件之一中。那么您就不必担心拆卸和更换它。当然,除非您要插入 Ruby 变量。
如果您在 JavaScript 中使用 Ruby 变量,那么也许您的 AJAX 调用应该渲染一个 js.erb 模板,而不是 RJS,该模板会抛出 JavaScript,然后渲染部分内容。
关于javascript - 将其中的一部分替换为js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4520026/