turbolinks与bootstrap模式的问题

时间:2012-10-05 05:04:18

标签: ruby-on-rails twitter-bootstrap ruby-on-rails-3.2 turbolinks

我做这样的模态:

显示模态的链接:

<%= link_to "versão resumida", resumed_rep_life_animal_path(animal, :partial => true), 'data-toggle' => 'modal', 'data-target' => '#myModal', 'data-no-turbolink' => true %>

模态html本身:

<div class="modal hide fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-body"></div>
  <div class="modal-footer">
    <button class="btn btn-primary" data-dismiss="modal" aria-hidden="true">Fechar</button>
  </div>
</div>

但是,data-no-turbolink没有按预期工作。如果我刷新页面,它可以正常工作,但是,当我使用turbolinks浏览页面时,看起来只是忽略了data-no-turbolink

我做错了吗?我有一些模态,如我的应用程序中的示例,不想删除它们,也不想删除turbolinks ......

提前致谢。

2 个答案:

答案 0 :(得分:7)

正如davydotcom所说,模态不起作用的原因是因为它们被$(document).ready而不是$(document).on('page:change')绑定,这是turbolinks使用的。

jquery-turbolinks gem将使它成为现成的调用也会响应turbolink的页面:更改调用。

第1步: 将gem jquery-turbolinks添加到您的Gemfile中。

第2步: 按以下顺序将其添加到JavaScript清单文件中:

//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//
// ... your other scripts here ...
//
//= require turbolinks

第3步: 重启服务器。吊杆!

答案 1 :(得分:2)

data-no-turbolinks不是问题......

看起来bootstrap js开箱即用只监视document.ready,而bootstrap JS可能需要修改以检查页面:load以及

Look at line 222

这只会在第一个包含bootstrap的请求中触发。它需要修改为在页面上触发:加载。

我可以提出的一个建议是使用gem'twitter-bootstrap-turbo'获取引导程序。这是twitter-bootstrap-rails的一个分支,增加了turbolinks处理程序。