【问题标题】:How can i render partial with jquery?如何使用 jquery 渲染部分内容?
【发布时间】:2020-04-01 11:13:16
【问题描述】:

我尝试将 AJAX 添加到我的博客。 我想使用 ajax 发布、编辑和删除 cmets。 例如,要发表评论,我使用:

$(".comment<%=@comment.parent_id %>").append('<%= j render partial:'comments/comment', locals: {comment: @comment} %>');

但由于我有嵌套,它没有按我想要的方式显示。 我拥有的所有 cmets 都在 _comment.html.erb 中。 我可以在不使用 jquery 重新加载页面的情况下渲染部分内容吗? 这是正确的方法吗?

【问题讨论】:

  • Partials 是视图,但您通常希望在 ajax 请求上返回 JSON,并使用返回的数据更新 dom。见guides.rubyonrails.org/working_with_javascript_in_rails.html
  • 如果需要,您可以在不使用 ajax 重新加载页面的情况下呈现部分内容。 @lacostenycoder 链接到的指南的第 4.1 节显示了一个很好的简单示例,说明了如何在 rails 中执行此操作,您可以很容易地对其进行修改以处理嵌套资源。见:guides.rubyonrails.org/…

标签: javascript jquery ruby-on-rails ruby


【解决方案1】:

正如我已经写过的,我拥有的所有 cmets 都在部分中。由于嵌套,我不能只使用 append 函数添加新评论。因此,我只是更新了页面上的部分内容,没有重新加载页面如下:

$(".comments").replaceWith("<div class='comments'><%= j nested_comments @post.comments.arrange(order: :created_at)%>")

【讨论】:

    猜你喜欢
    • 2011-10-17
    • 1970-01-01
    • 2014-05-31
    • 1970-01-01
    • 1970-01-01
    • 2011-07-24
    • 2011-07-03
    • 2015-11-28
    • 1970-01-01
    相关资源
    最近更新 更多