【问题标题】:How to load HTML through AJAX the RJS way using jQuery and UJS如何使用 jQuery 和 UJS 以 RJS 方式通过 AJAX 加载 HTML
【发布时间】:2011-02-10 23:45:45
【问题描述】:

我正在使用 Ruby on Rails 3 和 Ruby 1.9.2。

我正在关注一篇关于在 Ruby on Rails 2.x 中使用 RJS 的文章。从那时起,Rails 开发人员删除了 Rails 的 Prototype 依赖项,但是,通过这样做,他们删除了 RJS 功能和 link_to_remote 以及它。现在我们应该使用link_to:remote => true 作为参数,但与Rails 2.x 中的link_to_remoterender(:update) 相比,它在远程处理方面的功能更少。

我设置了jQuery for UJS

通过 AJAX 远程获取 HTML 并将其呈现在 div 标签内的最佳方法是什么?我想使用与旧 RJS 类似的功能,使用 render(:update)

我希望我不必手动绑定 jQuery 事件就能够将 HTML 远程加载到 DOM 中,因为 RJS 功能看起来非常棒。

【问题讨论】:

    标签: jquery ruby-on-rails ruby-on-rails-3


    【解决方案1】:

    我通常从我的 js.erb 文件中调用 partials:

    $('#container').html("<%= escape_javascript(render(:partial => 'content')) %>");
    

    以及我想要的部分 html。

    如果您的 html 很少,这可能对您没有意义。在这种情况下,直接写在你的 js.erb 文件中。

    你可以看看这个简短的教程:http://blog.bernatfarrero.com/jquery-and-rails-3-mini-tutorial/

    【讨论】:

    • 非常感谢您的回答!你是救生员。 :-)
    • 我对 Ruby on Rails 很陌生,但本教程让我感到困惑的是,逻辑依赖于用户“单击”表单中的链接/按钮/操作。这如何回答这个问题(@Kristinn 可能没有暗示)动态地将内容“自动”加载到 div 而不使用表单?换句话说,从概念上或字面上看,我缺少什么 Kristinn 显然是新的,将其应用于他的项目?谢谢!!
    • 嗨@Rick。我不明白你的问题。你能更详细地向我解释一下吗?谢谢。
    • 嗨@Kristinn!对困惑感到抱歉。我其实在这里澄清并问了:link
    • 嗨@Rick。呵呵 没问题。很高兴你有一个解决方案。 :-)
    【解决方案2】:

    您也可以使用 RJS(Rails 3 仍然有 RJS),但我也更喜欢直接写入 js.erb 文件。

    render :update do |page|
      page.replace_html 'id_of_dom_obj', :partial => 'partial_path'
    end
    

    【讨论】:

    • 这试图找到一个视图“更新”以在 Rails 3 中呈现,给出缺少模板的错误。
    • gem "prototype-rails" 添加到Gemfile,render :update 将再次起作用
    猜你喜欢
    • 1970-01-01
    • 2012-01-18
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 2017-04-07
    • 1970-01-01
    • 1970-01-01
    • 2012-06-18
    相关资源
    最近更新 更多