我试图在帖子下加载新的评论表单。我在页面上有多个帖子,因此我使用其主ID动态创建每个帖子的ID。然后我将该id传递给我的脚本,我可以在浏览器中看到html和脚本都使用正确的帖子ID进行呈现,但由于某种原因,我的新评论部分未被呈现。
我正在使用jQuery Mobile,所以我尝试定位页面内容div,它会被渲染得很好但是当我尝试定位包含帖子的div时,它根本不会渲染。好像id不存在但我在查看源代码时可以看到它。针对动态创建的ID存在问题,还是存在某种技巧?
这是我的javascript:
$("#post_<%= escape_javascript(@post.id.to_s) %>").append("<%= escape_javascript(render "comments/new", item: :post) %>");
我的行动:
def load_new_comment_partial
@comment = Comment.new
@post = Post.find(params[:id])
respond_to do |format|
format.js { render "comments/new" }
end
end
答案 0 :(得分:2)
这个js代码有时很棘手,你可以试试这个:
$('<%= "#post_#{@post.id.to_s}" %>').append('<%= escape_javascript(render "comments/new", item: @post) %>');
上面的代码应该在load_new_comment_partial.js.erb
上我已经更改了引号以及项目参数我已更改为@post而不是:post
在您的行动中,您可以替换
format.js { render "comments/new" }
与
format.js