我在一个全新的应用程序中使用了materialize-sass和simple_form gems以及materialize-form gem。我添加了materialize-sass gem,似乎一切正常。一旦我在gem githib页面后面添加了materialize-form gem并重新加载应用程序,我就开始收到以下错误。
Uncaught TypeError: $(...).material_select is not a function
at Object.initSelect (materialize-form.self-89fda0734fca24f0d2616fd681f296b51ac68a36ebdc1fcec6767a6543545064.js?body=1:9)
at Object.init (materialize-form.self-89fda0734fca24f0d2616fd681f296b51ac68a36ebdc1fcec6767a6543545064.js?body=1:3)
at HTMLDocument.<anonymous> (materialize-form.self-89fda0734fca24f0d2616fd681f296b51ac68a36ebdc1fcec6767a6543545064.js?body=1:23)
at fire (jquery.self-bd7ddd393353a8d2480a622e80342adf488fb6006d667e8b42e4c0073393abee.js?body=1:3233)
at Object.fireWith [as resolveWith] (jquery.self-bd7ddd393353a8d2480a622e80342adf488fb6006d667e8b42e4c0073393abee.js?body=1:3363)
at Function.ready (jquery.self-bd7ddd393353a8d2480a622e80342adf488fb6006d667e8b42e4c0073393abee.js?body=1:3583)
at HTMLDocument.completed (jquery.self-bd7ddd393353a8d2480a622e80342adf488fb6006d667e8b42e4c0073393abee.js?body=1:3618)
我确保在实现之前加载了jquery,并且在实现形式之前加载了实体化。
我的application.js看起来像:
//= require jquery
//= require materialize-sprockets
//= require rails-ujs
//= require turbolinks
//= require materialize-form
//= require_tree .
$(document).on('nested:fieldAdded', function(event) {
window.materializeForm.init()
})
我仍然得到错误。
答案 0 :(得分:0)
我完全理解您的问题。但是我可以给您一些很好的建议,以免您遇到这类问题。
1.-在Javascript文件夹下创建 materialize.js 页面
2.-这是一个小示例,说明了如何管理自己的init :(使用涡轮链接是可选的)
$(document).on('turbolinks:load', function() {
$('.modal').modal({});
$('.tabs').tabs();
$('.collapsible').collapsible();
$(".dropdown-trigger").dropdown();
$('.materialboxed').materialbox();
$('select').formSelect();
});
3.-这是我在 application.js 文件中管理需求的方式:
//= require jquery
//= require rails-ujs
//= require jquery2
//= require materialize
//= require materialize-sprockets
//= require turbolinks
//= require_tree .
4.-我的宝石得以实现:
gem 'materialize-sass', '~> 1.0.0'
gem 'jquery-rails', '4.1.1'
从字面上看,我希望这对您有用!