【问题标题】:Update Div without reload page using Ajax in Rails在 Rails 中使用 Ajax 更新 Div 而无需重新加载页面
【发布时间】:2013-02-26 03:31:48
【问题描述】:

在我看来af_form.html.erb

我有一个用于触发 ajax 调用的按钮

  <%= button_to('update ', {:action => 'update', :thingyid => 314}, :method => :get, :remote => true , :'data-update-target' => 'af_stat' ) %>

    <div id="af_stat" >
    <h3>Tiltle : 
      <%= @kk %>
    </h3>   

有人说我应该有一个名为 _af_form.html.erb 的文件 _af_form.html.erb 应该是什么?

在我的控制器欢迎中,有一个方法

  def update

    @kk = @kk +1

    render :partial => 'af_form', :content_type => 'text/html'
  end   

我听说有人说...“和 af_form.js.erb 一样”?这不是愚蠢吗?复制两个相同的文件。并且不遵守 DRY 规则。

它不起作用。怎么了。 任何人都可以帮助我。非常感谢。

我只想更改视图 af_form.html.erb 不是 _af_form.html.erb ,我为什么需要 _af_form.html.erb

【问题讨论】:

  • 移除控制器上的渲染线并创建一个 update.js.erb 模板。在那个文件中,添加你要执行的js。
  • 嗨,你确定在 update.js 中吗?我看到了服务器控制台`Rendered welcome/af.js.erb (0.6ms)`,但是我把page.replace_html('af_form', render(@kk))放在了js文件中。它也不起作用
  • 渲染是因为你的代码。如果您使用的是 rails 3,请键入您自己的 js。您无法再访问 page 变量。
  • 有例子吗?似乎一旦页面呈现,变量就不能再改变了?我怎么能在js中做? js能接受新变量吗?
  • 我使用 firebug 来捕捉响应 alert(@kk) page.replace_html('af_form', render(@kk)) 响应没有将 @kk 替换为“我想要的数字”

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


【解决方案1】:

在你的 update.js.erb 中试试这个

$('#af_stat h3').text('Title: <%= escape_javascript @kk %>');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-28
    • 1970-01-01
    • 1970-01-01
    • 2016-04-28
    • 1970-01-01
    • 1970-01-01
    • 2019-07-10
    • 2014-09-06
    相关资源
    最近更新 更多