Rails 3.2 + jQuery +在 js.erb 中渲染部分 = 损坏的 HTML 元素
任务非常简单:使用 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 %>");
建议将受到高度赞赏,我已经花了几个小时试图找出解决方案。
The task is pretty simple: render partial template with OnChange AJAX function.
After js.erb with render is executed I get broken HTML tags on my page new all rendered elements.
In this example it adds 'a>' to the link name, so DOM contains '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 %>");
Suggestions will be highly appreciated, I've already spent several hours trying to find out solution.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
一旦我从Prototype切换到jQuery,问题就解决了。因此 *action_script.js.erb* 效果很好,在这种情况下不需要
.html_safe
。The problem solved once I switched from Prototype to jQuery. So the *action_script.js.erb* works well and
.html_safe
is not required in this case.对于我们的 WODstack 来说,我们经常使用它,但我们从不使用 .html_safe。
只要删除你的 html_safe 就可以了。
For us with WODstack we use this quite a lot but we never ever use .html_safe.
Just remove your html_safe and you should be fine.