我一直试图找出如何在通过Ajax创建注释之前添加注释,我在表单中添加了remote true。在控制器中插入块,然后它获得了js文件,我在前面添加了新注释。我无法弄明白。我在SO上遇到了这个代码并且很快给了它一个镜头并且它起作用了。但我不知道为什么/如何?
这是代码:JS文件,
$("<%= escape_javascript(render @message) %>").prependTo(".view-messages");
这是它前置的div
<div class="view-messages">
<%= nested_messages @messages.arrange(:order => :created_at) %>
</div>
这一行$("<%= escape_javascript(render @message) %>")
我试过调试但不能,
那是什么打印出来的,它是其中一种神奇的东西还是我是愚蠢的?
虽然它有效但我想知道为什么以及怎么这样如果有人能帮助我,我会感激不尽。
由于
编辑:
$("<div class=\"body body-144\">\n <span class=\"tip tip-left\"><\/span>\n <div class=\"message font-medium\">\n ellll <br />\n <\/div>\n <div class=\"flerowspb\">\n <span class=\"font-small\">\n <a href=\"/profiles/122\">Nyall2911(28)<\/a>\n <\/span>\n <span class=\"font-small\">\n <a href=\"/messages/new?entry_id=344&parent_id=144\">Reply<\/a>\n <a rel=\"nofollow\" data-method=\"delete\" href=\"/messages/144\">| Delete<\/a>\n <\/span>\n <\/div>\n<\/div>\n")
这就是它的渲染,所以我想我的问题是,如何通过调用(render @message)
答案 0 :(得分:0)
以下是escape_javascript
方法:https://github.com/rails/rails/blob/55f9b8129a50206513264824abb44088230793c2/actionview/lib/action_view/helpers/javascript_helper.rb#L25
根据方法下面的注释,它看起来像是替换了一些不安全的字符,并使用html_safe
方法返回原始HTML。 jQuery
然后将原始HTML添加到您的div。