【问题标题】:loading rails partial via ajax通过ajax部分加载rails
【发布时间】:2014-05-06 08:06:54
【问题描述】:

我正在尝试通过 ajax 加载部分内容。当我尝试渲染部分时,我得到的只是打印到屏幕上的渲染代码。

JS

$("#filter_menu2 input:checkbox").click ->
  $.get "search", (data) ->
    $("#products").html("<%= escape_javascript(render(:partial=>'new_shop/shop_search_results')).html_safe %>")
    return

控制器

   respond_to do |format|
      format.html #search.html.erb
      format.js
    end

这只是打印在屏幕上

<%= escape_javascript(render(:partial=>'new_shop/shop_search_results')).html_safe %>

【问题讨论】:

  • 尝试使用render_to_string而不是render
  • mb 你在$.get "search", (data) -&gt;之后错过了标签
  • 刚刚纠正了这一点。不过,代码中的选项卡是正确的。
  • 那么这意味着您的请求未被正确识别为javascript格式。为了测试它,将带有debugger 的行放到每个模板中。发出请求并检查呈现的模板。

标签: javascript jquery ruby-on-rails ajax


【解决方案1】:

你必须把你的代码放在search.js.erb 中,然后把respond_to :js 放在控制器的顶部,最后返回format.js {render "search.js.erb"}

所以,现在search.js.erb 包含这一行

$("#products").html("<%= escape_javascript(render(:partial=>'new_shop/shop_search_results')).html_safe %>")

【讨论】:

  • 我需要在 search.js.erb 中添加什么?渲染部分? $('#products').append('');
  • 你已经把这行$("#products").html("&lt;%= escape_javascript(render(:partial=&gt;'new_shop/shop_search_results')).html_safe %&gt;")
猜你喜欢
  • 2013-01-10
  • 1970-01-01
  • 2016-03-25
  • 2015-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-20
  • 1970-01-01
相关资源
最近更新 更多