bootstrap模态和turbolinks

时间:2014-12-01 16:55:43

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

我在使用turbolinks和jquery.turbolinks的Rails 4中使用以下代码,它在添加turbolinks之前工作,然后当我删除turbolinks时它仍然无效(现在没有link_to对象切换模态):

(我知道这个turbolinks issues with bootstrap modal,我正在寻找一种更好的方法来切换这些模态并使用turbolinks激活。)

<% if proposta.parecer %>
    <%= link_to '', '#', class: 'parecer-proposta md-trigger parecer ' + (proposta.parecer.status == "indica" ? 'aprovado' : 'reprovado'), data: { modal: 'modal-parecer', proposta: proposta.id, tem_parecer: true, parecer: proposta.parecer.parecer, status: proposta.parecer.status, responsavel: proposta.parecer.sociedade.nome, data_parecer: proposta.parecer.created_at.strftime("%d/%m/%Y - %H:%M")} %>
<% else %>
    <%= link_to 'Enviar', '#', class: 'parecer-proposta md-trigger', data: { modal: 'modal-parecer', proposta: proposta.id, tem_parecer: false } %>
<% end %>
.
.
.
.

#_modal_parecer.html.erb

<div class="md-modal md-effect-6" id="modal-parecer">
  <div class="md-content">
   ...
  </div>
</div>

<div class="md-overlay"></div>

1 个答案:

答案 0 :(得分:1)

通常在页面就绪时,bootstrap js搜索页面以查看数据切换和目标是否存在,然后将事件绑定到该页面。当您更改页面时,事件会中断,但引导程序js存在,因为只有因为turbolinks而重新加载了主体。

所以,使用turbolinks钩子页面:改变&#39;或者&#39;页面:加载&#39;,我们可以告诉bootstrap js您的模态所在的位置以及它们应该被激活。

让我知道这是否有效:

$(document).on('page:load', function(){

  $(document).on('click', 'ID/Class of the link', function() {

    $('#myModal').modal();

  });

});