【问题标题】:Rails 3.2 + jQuery + render partial in js.erb = broken HTML elementsRails 3.2 + jQuery + js.erb 中的部分渲染 = 损坏的 HTML 元素
【发布时间】:2012-02-24 21:38:53
【问题描述】:

任务非常简单:使用 OnChange AJAX 函数渲染部分模板。 执行带有渲染的 js.erb 后,我的页面上的 HTML 标签损坏,所有渲染的元素都被破坏。 在此示例中,它会将 'a>' 添加到链接名称中,因此 DOM 包含 'New branda>'

#partial
<%= link_to 'New Brand', new_brand_path %>

#controller-------------------------
...
format.js

#parent view------------------------
<div id="partial-id">
    <%= render 'partial' %>
</div>

#action_script.js.rjs---------------
$("#partial-id").html("<%= escape_javascript(render ('partial')).html_safe %>");

非常感谢您的建议,我已经花了几个小时试图找出解决方案。

【问题讨论】:

  • 您的 JS 模板是 ERB 还是 RJS 模板(您提到“在执行带有渲染的 js.erb 之后...”但在代码块中 action_script.js.rjs)?

标签: javascript jquery ruby-on-rails ajax render


【解决方案1】:

当我从 Prototype 切换到 jQuery 后,问题就解决了。所以 *action_script.js.erb* 运行良好,在这种情况下不需要.html_safe

【讨论】:

    【解决方案2】:

    对于使用 WODstack 的我们来说,我们经常使用它,但我们从未使用过 .html_safe。

    只需删除您的 html_safe 就可以了。

    【讨论】:

    • 谢谢,但我试过了。如果我删除 .html_safe,那么我不仅会看到“New branda>”,还会看到整个标签的来源作为文本。
    • 这是我部分的全部内容:
    猜你喜欢
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-30
    • 1970-01-01
    • 1970-01-01
    • 2012-07-29
    • 1970-01-01
    相关资源
    最近更新 更多