Ruby on rails Rails FlatPicker控制器不希望注册
我在rails应用程序中扩展刺激FlatPicker控制器时遇到困难。我的问题是,为什么只有当我手动注册控制器时,刺激FlatPicker才会工作?我已经遵循了“高级使用”下的步骤。只是为了确认一下,我正在使用Stimular FlatPicker,当我手动注册它时它会工作。当我使用下面的代码时,FlatPicker按预期工作 javascript/packs/application.jsRuby on rails Rails FlatPicker控制器不希望注册,ruby-on-rails,webpack,turbolinks,flatpickr,stimulusjs,Ruby On Rails,Webpack,Turbolinks,Flatpickr,Stimulusjs,我在rails应用程序中扩展刺激FlatPicker控制器时遇到困难。我的问题是,为什么只有当我手动注册控制器时,刺激FlatPicker才会工作?我已经遵循了“高级使用”下的步骤。只是为了确认一下,我正在使用Stimular FlatPicker,当我手动注册它时它会工作。当我使用下面的代码时,FlatPicker按预期工作 javascript/packs/application.js import { Application } from 'stimulus' import { defin
import { Application } from 'stimulus'
import { definitionsFromContext } from 'stimulus/webpack-helpers'
const application = Application.start()
const context = require.context('../controllers', true, /\.js$/)
application.load(definitionsFromContext(context))
// import Flatpickr
import Flatpickr from 'stimulus-flatpickr'
// Import style for flatpickr
require("flatpickr/dist/flatpickr.css")
// Manually register Flatpickr as a stimulus controller
application.register('flatpickr', Flatpickr)
// import stimulus-flatpickr wrapper controller to extend it
import Flatpickr from 'stimulus-flatpickr'
import Rails from "rails-ujs";
// import a theme (could be in your main CSS entry too...)
import 'flatpickr/dist/themes/dark.css'
// create a new Stimulus controller by extending stimulus-flatpickr wrapper controller
export default class extends Flatpickr {
initialize() {
//global options
this.config = {
enableTime: true,
time_24hr: true
};
}
connect() {
//define locale and global flatpickr settings for all datepickers
this.config = {
locale: this.locale,
altInput: true,
showMonths: 2
};
super.connect();
}
// automatically submit form when a date is selected
change(selectedDates, dateStr, instance) {
const form = this.element.closest("form");
Rails.fire(form, "submit");
}
get locale() {
if (this.locales && this.data.has("locale")) {
return this.locales[this.data.get("locale")];
} else {
return "";
}
}
}
import Rails from "rails-ujs";
Rails.start();
import { Application } from "stimulus";
import { definitionsFromContext } from "stimulus/webpack-helpers";
const application = Application.start();
const context = require.context("controllers", true, /.js$/);
application.load(definitionsFromContext(context));
import Turbolinks from "turbolinks";
Turbolinks.start();
import "vendor/rails";
import "vendor/turbolinks";
import "vendor/stimulus";
创建新的FlatPicker控制器时,FlatPicker不会显示。我正在重新创建应用程序
javascript/controllers/flatpickr\u controller.js
import { Application } from 'stimulus'
import { definitionsFromContext } from 'stimulus/webpack-helpers'
const application = Application.start()
const context = require.context('../controllers', true, /\.js$/)
application.load(definitionsFromContext(context))
// import Flatpickr
import Flatpickr from 'stimulus-flatpickr'
// Import style for flatpickr
require("flatpickr/dist/flatpickr.css")
// Manually register Flatpickr as a stimulus controller
application.register('flatpickr', Flatpickr)
// import stimulus-flatpickr wrapper controller to extend it
import Flatpickr from 'stimulus-flatpickr'
import Rails from "rails-ujs";
// import a theme (could be in your main CSS entry too...)
import 'flatpickr/dist/themes/dark.css'
// create a new Stimulus controller by extending stimulus-flatpickr wrapper controller
export default class extends Flatpickr {
initialize() {
//global options
this.config = {
enableTime: true,
time_24hr: true
};
}
connect() {
//define locale and global flatpickr settings for all datepickers
this.config = {
locale: this.locale,
altInput: true,
showMonths: 2
};
super.connect();
}
// automatically submit form when a date is selected
change(selectedDates, dateStr, instance) {
const form = this.element.closest("form");
Rails.fire(form, "submit");
}
get locale() {
if (this.locales && this.data.has("locale")) {
return this.locales[this.data.get("locale")];
} else {
return "";
}
}
}
import Rails from "rails-ujs";
Rails.start();
import { Application } from "stimulus";
import { definitionsFromContext } from "stimulus/webpack-helpers";
const application = Application.start();
const context = require.context("controllers", true, /.js$/);
application.load(definitionsFromContext(context));
import Turbolinks from "turbolinks";
Turbolinks.start();
import "vendor/rails";
import "vendor/turbolinks";
import "vendor/stimulus";
javascript/vendor/rails.js
import { Application } from 'stimulus'
import { definitionsFromContext } from 'stimulus/webpack-helpers'
const application = Application.start()
const context = require.context('../controllers', true, /\.js$/)
application.load(definitionsFromContext(context))
// import Flatpickr
import Flatpickr from 'stimulus-flatpickr'
// Import style for flatpickr
require("flatpickr/dist/flatpickr.css")
// Manually register Flatpickr as a stimulus controller
application.register('flatpickr', Flatpickr)
// import stimulus-flatpickr wrapper controller to extend it
import Flatpickr from 'stimulus-flatpickr'
import Rails from "rails-ujs";
// import a theme (could be in your main CSS entry too...)
import 'flatpickr/dist/themes/dark.css'
// create a new Stimulus controller by extending stimulus-flatpickr wrapper controller
export default class extends Flatpickr {
initialize() {
//global options
this.config = {
enableTime: true,
time_24hr: true
};
}
connect() {
//define locale and global flatpickr settings for all datepickers
this.config = {
locale: this.locale,
altInput: true,
showMonths: 2
};
super.connect();
}
// automatically submit form when a date is selected
change(selectedDates, dateStr, instance) {
const form = this.element.closest("form");
Rails.fire(form, "submit");
}
get locale() {
if (this.locales && this.data.has("locale")) {
return this.locales[this.data.get("locale")];
} else {
return "";
}
}
}
import Rails from "rails-ujs";
Rails.start();
import { Application } from "stimulus";
import { definitionsFromContext } from "stimulus/webpack-helpers";
const application = Application.start();
const context = require.context("controllers", true, /.js$/);
application.load(definitionsFromContext(context));
import Turbolinks from "turbolinks";
Turbolinks.start();
import "vendor/rails";
import "vendor/turbolinks";
import "vendor/stimulus";
javascript/vendor/stimulus.js
import { Application } from 'stimulus'
import { definitionsFromContext } from 'stimulus/webpack-helpers'
const application = Application.start()
const context = require.context('../controllers', true, /\.js$/)
application.load(definitionsFromContext(context))
// import Flatpickr
import Flatpickr from 'stimulus-flatpickr'
// Import style for flatpickr
require("flatpickr/dist/flatpickr.css")
// Manually register Flatpickr as a stimulus controller
application.register('flatpickr', Flatpickr)
// import stimulus-flatpickr wrapper controller to extend it
import Flatpickr from 'stimulus-flatpickr'
import Rails from "rails-ujs";
// import a theme (could be in your main CSS entry too...)
import 'flatpickr/dist/themes/dark.css'
// create a new Stimulus controller by extending stimulus-flatpickr wrapper controller
export default class extends Flatpickr {
initialize() {
//global options
this.config = {
enableTime: true,
time_24hr: true
};
}
connect() {
//define locale and global flatpickr settings for all datepickers
this.config = {
locale: this.locale,
altInput: true,
showMonths: 2
};
super.connect();
}
// automatically submit form when a date is selected
change(selectedDates, dateStr, instance) {
const form = this.element.closest("form");
Rails.fire(form, "submit");
}
get locale() {
if (this.locales && this.data.has("locale")) {
return this.locales[this.data.get("locale")];
} else {
return "";
}
}
}
import Rails from "rails-ujs";
Rails.start();
import { Application } from "stimulus";
import { definitionsFromContext } from "stimulus/webpack-helpers";
const application = Application.start();
const context = require.context("controllers", true, /.js$/);
application.load(definitionsFromContext(context));
import Turbolinks from "turbolinks";
Turbolinks.start();
import "vendor/rails";
import "vendor/turbolinks";
import "vendor/stimulus";
javascript/vendor/turbolinks.js
import { Application } from 'stimulus'
import { definitionsFromContext } from 'stimulus/webpack-helpers'
const application = Application.start()
const context = require.context('../controllers', true, /\.js$/)
application.load(definitionsFromContext(context))
// import Flatpickr
import Flatpickr from 'stimulus-flatpickr'
// Import style for flatpickr
require("flatpickr/dist/flatpickr.css")
// Manually register Flatpickr as a stimulus controller
application.register('flatpickr', Flatpickr)
// import stimulus-flatpickr wrapper controller to extend it
import Flatpickr from 'stimulus-flatpickr'
import Rails from "rails-ujs";
// import a theme (could be in your main CSS entry too...)
import 'flatpickr/dist/themes/dark.css'
// create a new Stimulus controller by extending stimulus-flatpickr wrapper controller
export default class extends Flatpickr {
initialize() {
//global options
this.config = {
enableTime: true,
time_24hr: true
};
}
connect() {
//define locale and global flatpickr settings for all datepickers
this.config = {
locale: this.locale,
altInput: true,
showMonths: 2
};
super.connect();
}
// automatically submit form when a date is selected
change(selectedDates, dateStr, instance) {
const form = this.element.closest("form");
Rails.fire(form, "submit");
}
get locale() {
if (this.locales && this.data.has("locale")) {
return this.locales[this.data.get("locale")];
} else {
return "";
}
}
}
import Rails from "rails-ujs";
Rails.start();
import { Application } from "stimulus";
import { definitionsFromContext } from "stimulus/webpack-helpers";
const application = Application.start();
const context = require.context("controllers", true, /.js$/);
application.load(definitionsFromContext(context));
import Turbolinks from "turbolinks";
Turbolinks.start();
import "vendor/rails";
import "vendor/turbolinks";
import "vendor/stimulus";
javascript/packs/application.js
import { Application } from 'stimulus'
import { definitionsFromContext } from 'stimulus/webpack-helpers'
const application = Application.start()
const context = require.context('../controllers', true, /\.js$/)
application.load(definitionsFromContext(context))
// import Flatpickr
import Flatpickr from 'stimulus-flatpickr'
// Import style for flatpickr
require("flatpickr/dist/flatpickr.css")
// Manually register Flatpickr as a stimulus controller
application.register('flatpickr', Flatpickr)
// import stimulus-flatpickr wrapper controller to extend it
import Flatpickr from 'stimulus-flatpickr'
import Rails from "rails-ujs";
// import a theme (could be in your main CSS entry too...)
import 'flatpickr/dist/themes/dark.css'
// create a new Stimulus controller by extending stimulus-flatpickr wrapper controller
export default class extends Flatpickr {
initialize() {
//global options
this.config = {
enableTime: true,
time_24hr: true
};
}
connect() {
//define locale and global flatpickr settings for all datepickers
this.config = {
locale: this.locale,
altInput: true,
showMonths: 2
};
super.connect();
}
// automatically submit form when a date is selected
change(selectedDates, dateStr, instance) {
const form = this.element.closest("form");
Rails.fire(form, "submit");
}
get locale() {
if (this.locales && this.data.has("locale")) {
return this.locales[this.data.get("locale")];
} else {
return "";
}
}
}
import Rails from "rails-ujs";
Rails.start();
import { Application } from "stimulus";
import { definitionsFromContext } from "stimulus/webpack-helpers";
const application = Application.start();
const context = require.context("controllers", true, /.js$/);
application.load(definitionsFromContext(context));
import Turbolinks from "turbolinks";
Turbolinks.start();
import "vendor/rails";
import "vendor/turbolinks";
import "vendor/stimulus";
视图/layouts/application.html.erb
<head>
<%= javascript_include_tag "application" %>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= stylesheet_pack_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload', defer: true %>
</head>