【发布时间】:2011-09-14 01:36:37
【问题描述】:
我在通过 AJAX 呈现响应时遇到问题。
这是我的 .js.haml 视图的样子:
:plain
$("#cart").replaceWith("#{escape_javascript(render 'carts/cart')}");
部分 HTML 代码呈现不正确并破坏 HTML 布局。在 Safari 的网络检查器中,我收到以下 XHR 响应:
$("#cart").replaceWith("你的订单h2>
我很清楚,HTML 代码已损坏:h2 标记未正确关闭,属性值未包含在括号中等。
被这样的响应替换的页面的一部分将被破坏。
我还尝试了一些其他技术,例如:
!= "$('#cart').replaceWith('#{escape_javascript(render 'carts/cart')}');"
结果是一样的。
但是,简单的情况,比如
:plain
$("#cart").replaceWith("<p>Test</p>");
工作正常。
问题在于部分的渲染。
PS:这部分是 100% 正确的,因为它被常规页面渲染使用。
这里有什么问题。
谢谢。
【问题讨论】:
-
您使用的是哪个版本的 R3?我知道后面的需要
raw和escape_javascript。认为这在 3.0.8 开始。但是,这可能是一个值得一看的地方。 -
是的,我使用的是 Rails 3.0.8。什么是生的?请举个例子。
-
raw(escape_javascript(...your render...))希望这能让你继续前进。 -
我找到了原因。这是 Rails 3.0.8 中的一个错误。 github.com/rails/rails/issues/1553
标签: jquery ajax ruby-on-rails-3 haml partial-views