-2

所以我试图在我的 Rails 7 应用程序中设置 selectize ( https://selectize.dev ),虽然我没有运气自动固定它,但我现在通过直接指向源来固定它。

然后,我为要选择的表单字段创建了一个小初始化脚本,但控制台显示以下错误:

Uncaught TypeError: Cannot set properties of undefined (setting 'Sifter')        selectize.min.js:3
    at selectize.min.js:3:149
    at selectize.min.js:3:160

不知道出了什么问题?

这是 importmap.rb

pin "application", preload: true
pin "@hotwired/turbo-rails", to: "turbo.min.js", preload: true
pin "@hotwired/stimulus", to: "stimulus.min.js", preload: true
pin "@hotwired/stimulus-loading", to: "stimulus-loading.js", preload: true
pin_all_from "app/javascript/controllers", under: "controllers"
pin "trix"
pin "@rails/actiontext", to: "actiontext.js"
pin "jquery", preload: true # @3.6.0
pin "selectize", to: "https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.13.3/js/standalone/selectize.min.js"
pin "selectize-setup"

这是我的初始化脚本(selectize-setup.js):

import "selectize";

jQuery(function () {
  $(".format-select").selectize();
});

下面是我在 new.html.erb 中调用脚本的方法:

<h1>Add New Book</h1>
<%= javascript_import_module_tag("selectize-setup") %>
<%= render 'form', book: @book %>

我认为 jquery 可能有问题,但是它是在 application.js 中初始化的,并且在控制台上使用 $().jquery 会给出正确的版本。应用程序.js:

import "@hotwired/turbo-rails";
import "controllers";
import "trix";
import "@rails/actiontext";
import jQuery from "jquery";

window.jQuery = jQuery;
window.$ = jQuery;
4

0 回答 0