【问题标题】:Rendering a partial using ajax使用ajax渲染部分
【发布时间】:2013-01-29 03:52:59
【问题描述】:

看起来很简单,但我的部分没有使用 ajax 在视图中呈现(dash.html.erb)。

routes.rb

match "users/dash" => "users#dash"

用户控制器

def dash
     respond_to do |format|
    format.js
  end
   end

dash.html.erb

<div id= "mydiv">This view is not shown using ajax.</div>

dash.js.erb

$('#mydiv').html('<%= raw escape_javascript render("cart_payment") %>');

我的部分-_cart_payment.html.erb

<p>This is a partial.</p>

更新:

users/index.html.erb

<script type= "text/javascript">

$.ajax({
  url: "users/dash",
  data: {  
  //params if needed

  }
});

</script>

请注意,我在浏览器中调用-users url,因为 ajax 是从这里调用的。 这是不正确的方式还是我错过了什么?

【问题讨论】:

  • 无论你用什么来调用 dash 都必须有一个 data-remote="true" 。即链接或按钮或表单
  • 如果您在浏览器中调用/controller_name/dash.js 会发生什么?
  • @Magicmarkker- 抱歉,我更新了问题以包含使用 ajax 的调用。
  • @davidb - 这样做,我得到$('#mydiv').html('&lt;p&gt;This is a partial.&lt;\/p&gt;');

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


【解决方案1】:

当你远程调用dash方法时,它实际上是在执行$('#mydiv').html...代码。问题是,您的 index.html.erb 文件首先没有要更新的 &lt;div id='mydiv'&gt;

如果你用这个替换你的index.html.erb,它应该可以工作:

<div id='mydiv'></div>

<script type= "text/javascript">
  $.ajax({
    url: "users/dash",
    data: {  
    //params if needed
    }
  });
</script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-05
    • 2011-06-18
    相关资源
    最近更新 更多