在js.erb文件中呈现部分

我正在尝试创建一个基于ajax的评论表单,它将在提交时更新我的评论列表。非常基本的东西

我有一个部分的comments/_single.html.haml,其中有一个<李&gt标记基本注释信息,这是我的注释/create.js.erb文件(实际上,这是三个不同的测试文件合并成一个,向您展示我的问题是什么):

$(“#comments ul.comments”).append(<%=render:partial=>'comments/single',:locals=>{:c=>@comment}%>”;
$(“#comments ul.comments”).append(“<%=render:partial=>'comments/foobar”%>”;
$('#comments ul.comments')。附加(“foobar”);
警报(“foobar”);

comments/_foobar.html.haml的内容只是foobar,里面没有html。
我的问题是前两行不行。我的dev服务器控制台中没有错误,objectinspector说注释代码返回正确,但它们没有添加到我的注释列表中。第三行很好,第四行也很好。使用render似乎有一些问题

在Javascript代码中呈现部分时,应该使用escape_Javascript方法,如下所示

$(“#comments ul.comments”).append(<%=escape_javascript呈现(:partial=>'comments/single',:locals=>{:c=>@comment})%>”;

此方法别名为j,因此您也可以执行此操作

$(“#comments ul.comments”).append(“<%=j render(:partial=>'comments/foobar')%”);

该方法对JavaScript段转义回车、单引号和双引号
ActionView::Helpers::JavaScriptHelper Rails文档

发表评论