【问题标题】:rendering partial with js.haml in AJAX response在 AJAX 响应中使用 js.haml 渲染部分内容
【发布时间】: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


【解决方案1】:

我找到了原因。由于在 Rails 3.0.8 中发现 bug,escape_javascript 函数无法正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-31
    • 2011-10-17
    • 2013-01-29
    • 2018-04-30
    • 2016-10-05
    相关资源
    最近更新 更多