带遥控器的表格:true 不适用于 turbolinks
Form with remote: true not working with turbolinks
我设置了一个表单并在上面设置了 remote: true
。如果我直接刷新页面它会起作用。如果我从菜单导航到所需的表单,该按钮什么也不做。
我尝试将 "data-no-turbolink="true" 添加到菜单的 link,但它仍然不起作用,可能是因为 turbolinks 5 不确定?
<%= form_for :location, url: get_inventory_path, remote: true do |f| %>
<div class="input-field col s12">
<%= f.select :location_id, options_for_select(@locations.collect { |l|
[l.station + ', ' + l.venue + ', ' + l.area + ', ' + l.city + ', ' + l.country, l.id] }, 1), {}, { id: 'location_select', class: "browser-default" } %>
</div>
</div>
</div>
<div class="card-action center-align">
<%= f.submit "Go", class: "btn blue", data: { disable_with: "Please wait..." } %>
</div>
<% end %>
我还添加了 Turbolinks 5 的新事件侦听器,这使事情变得更容易,但又一次..
$(document).on('turbolinks:load',function(){
$(".button-collapse").sideNav();
$('select').material_select();
$('.dropdown-button').dropdown({
belowOrigin: true,
constrain_width: false,
alignment: "right"
});
$('.collapsible').collapsible();
$('.tooltipped').tooltip({delay: 50});
});
欢迎提供任何线索!
所以它似乎在某些元素上禁用 turbolinks 有效,但自 Turbolinks 5 以来它发生了变化,我在 turbolinks 5 文档中错过了它。供日后参考
文档中的示例
<a href="/" data-turbolinks="false">Disabled</a>
<div data-turbolinks="false">
<a href="/">Disabled</a>
</div>
Rails 示例
<%= link_to "Overview", inventory_index_path, :"data-turbolinks"=>"false" %>
我希望这对您有所帮助,但如果有人发现真正的问题,请告诉我们!
尝试将所有 js 文件加载到头部而不是主体末尾。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title><%= content_for?(:title) ? yield(:title) : "app" %></title>
<%= csrf_meta_tags %>
<%= favicon_link_tag %>
<%= stylesheet_link_tag "application", :media => "all" %>
<%= javascript_include_tag "application" %>
</head>
<body>
<%= render "layouts/application_header" %>
<div class="container">
<div class="row">
<div class="col-lg-12">
<%= yield %>
</div>
</div><!--/row-->
</body>
</html>
哎呀,从现在开始你会遇到同样的问题。
并添加 gem jquery turbolinks 并按照那里的说明进行操作。
https://github.com/kossnocorp/jquery.turbolinks
然后您可以在页面中准备好文档后再次工作
我设置了一个表单并在上面设置了 remote: true
。如果我直接刷新页面它会起作用。如果我从菜单导航到所需的表单,该按钮什么也不做。
我尝试将 "data-no-turbolink="true" 添加到菜单的 link,但它仍然不起作用,可能是因为 turbolinks 5 不确定?
<%= form_for :location, url: get_inventory_path, remote: true do |f| %>
<div class="input-field col s12">
<%= f.select :location_id, options_for_select(@locations.collect { |l|
[l.station + ', ' + l.venue + ', ' + l.area + ', ' + l.city + ', ' + l.country, l.id] }, 1), {}, { id: 'location_select', class: "browser-default" } %>
</div>
</div>
</div>
<div class="card-action center-align">
<%= f.submit "Go", class: "btn blue", data: { disable_with: "Please wait..." } %>
</div>
<% end %>
我还添加了 Turbolinks 5 的新事件侦听器,这使事情变得更容易,但又一次..
$(document).on('turbolinks:load',function(){
$(".button-collapse").sideNav();
$('select').material_select();
$('.dropdown-button').dropdown({
belowOrigin: true,
constrain_width: false,
alignment: "right"
});
$('.collapsible').collapsible();
$('.tooltipped').tooltip({delay: 50});
});
欢迎提供任何线索!
所以它似乎在某些元素上禁用 turbolinks 有效,但自 Turbolinks 5 以来它发生了变化,我在 turbolinks 5 文档中错过了它。供日后参考
文档中的示例
<a href="/" data-turbolinks="false">Disabled</a>
<div data-turbolinks="false">
<a href="/">Disabled</a>
</div>
Rails 示例
<%= link_to "Overview", inventory_index_path, :"data-turbolinks"=>"false" %>
我希望这对您有所帮助,但如果有人发现真正的问题,请告诉我们!
尝试将所有 js 文件加载到头部而不是主体末尾。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title><%= content_for?(:title) ? yield(:title) : "app" %></title>
<%= csrf_meta_tags %>
<%= favicon_link_tag %>
<%= stylesheet_link_tag "application", :media => "all" %>
<%= javascript_include_tag "application" %>
</head>
<body>
<%= render "layouts/application_header" %>
<div class="container">
<div class="row">
<div class="col-lg-12">
<%= yield %>
</div>
</div><!--/row-->
</body>
</html>
哎呀,从现在开始你会遇到同样的问题。
并添加 gem jquery turbolinks 并按照那里的说明进行操作。 https://github.com/kossnocorp/jquery.turbolinks 然后您可以在页面中准备好文档后再次工作