Ruby on rails with Bootstrap modals - 创建一个按钮来重新加载模态

时间:2015-10-15 14:31:19

标签: javascript jquery ruby-on-rails twitter-bootstrap

我正在使用Ruby on Rails 4和Bootstrap模式。

我有一个链接到我的网站上的控制器操作,该操作以模态打开。我这样做使用ajax将一个帮助文件放入div。控制器动作从模型中获取随机产品。我希望我的模式中有一个按钮来重新加载'模态。换句话说,关闭模态并重新打开它再次调用控制器操作,这样我们就有了新产品。

我还想知道如何在模式中创建一个按钮,该按钮链接到不同的控制器动作(更改数据库中的属性),然后重新加载模态。

example_controller.rb

def onsale
    @item= Products.(code to get random product)
    respond_to do |format|
      format.js
    end
  end

_header.html.erb 这里我显示了打开模态的链接。

<div class="collapse navbar-collapse" id="navbar-collapse">
        <% if user_signed_in? %>
          <ul class="nav navbar-nav navbar-left">
            <li><%= link_to "Sale Items", onsale_path,  :remote => true %></li>
          </ul>
        <% end %>
</div>

我将此代码<div id="onsale-modal"></div>放在application.html.erb

的正文中

onsale.js.erb

$("#onsale-modal").html('<%= escape_javascript(render 'onsale') %>');
$('#myModal').modal('show')

_onsale.html.erb

<div class="modal" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
        <h4 class="modal-title" id="myModalLabel">Modal title</h4>
      </div>
      <div class="modal-body">
        <%= image_tag @item.picture.large.url %>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary" id="reload">Reload</button>
      </div>
    </div>
  </div>
</div>

编辑:

我添加了此代码

$('#reload').on('click', function () {
  $('#myModal').modal('hide');
  $.ajax("/onsale");
});

到onsale.js.erb,似乎工作正常。这样做有什么不对吗?

0 个答案:

没有答案