dav*_*mcd 9 javascript stimulusjs
我想为我的控制器的 CSS 选择器设置一个 const 变量,而不是在整个控制器中对其进行硬编码。我已将声明放入控制器的initialize() 中,但收到错误消息,表明该变量未声明。这样做的正确方法是什么?
目前的尝试
import { Controller } from "stimulus"
export default class extends Controller {
static targets = ["form"]
initialize() {
const seasonInputSelector = "input[id$='_season']"
}
change(event) {
// ...
var yearNodes = this.formTarget.querySelectorAll(seasonInputSelector)
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
错误: ReferenceError:seasonInputSelector 未定义
Dai*_*Dai 15
const在模块的根范围中使用变量:
import { Controller } from "stimulus"
const seasonInputSelector = "input[id$='_season']";
export default class extends Controller {
static targets = ["form"]
initialize() {
}
change(event) {
// ...
var yearNodes = this.formTarget.querySelectorAll( seasonInputSelector );
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
另一种方法是将其范围限制在类中
import { Controller } from "stimulus"
export default class extends Controller {
static targets = ["form"]
seasonInputSelector = "input[id$='_season']";
change(event) {
// ...
var yearNodes = this.formTarget.querySelectorAll( this.seasonInputSelector );
// ...
}
}
Run Code Online (Sandbox Code Playgroud)