1

我在一个全新的应用程序上使用 materialize-sass 和 simple_form gem 以及 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()
})

我仍然得到错误。

4

1 回答 1

0

我完全理解你的问题。但我可以给你一些很好的建议,以免你遇到这些问题。

1.- 在Javascript文件夹下创建materialize.js页面

2.- 这是我如何管理我的 inits 的一个小例子:(turbolinks 的使用是可选的)

$(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'

这就是字面意思,我希望这对你有用!

于 2020-01-30T06:21:07.753 回答