#javascript #stimulusjs
Вопрос:
У меня ниже довольно стандартный на вид и просто контроллер stimulusJS. Как вы можете видеть, существует некоторое дублирование кода. Что я хотел бы сделать, так это извлечь this.toggleTarget.classList.add(html_class)
строку в частный метод внутри контроллера стимула. Каков наилучший способ сделать это и нужно ли мне передавать элемент ( this.toggleTarget
) и класс ( html_class
) в этот частный метод?
import { Controller } from "@hotwired/stimulus"
export default class extends Controller {
static targets = [ "toggle" ]
static classes = [ "revealIn", "revealOut"]
toggle() {
if(this.toggleTarget.classList.contains('hidden')) {
for ( const html_class of this.revealInClasses) {
this.toggleTarget.classList.add(html_class)
}
for ( const html_class of this.revealOutClasses) {
this.toggleTarget.classList.remove(html_class)
}
} else {
for ( const html_class of this.revealInClasses) {
this.toggleTarget.classList.remove(html_class)
}
for ( const html_class of this.revealOutClasses) {
this.toggleTarget.classList.add(html_class)
}
}
}
}