我正在尝试创建一个基于ajax的评论表单,它将在提交时更新我的评论列表。非常基本的东西
我有一个部分的comments/_single.html.haml,其中有一个<;李>标记基本注释信息,这是我的注释/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文档