我在使用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>
答案 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();
});
});