slo*_*zki 5 javascript stimulusjs
我是 JavaScript 新手,可能想用它来模拟 Ruby。我使用 StimulusJS,但我认为这个问题一般适用于 JS。
我的目标是运行一个方法(单击按钮时),该方法将从按钮获取并显示该类别的所有子类别。该方法/函数将首先获取数据,然后操作 DOM。displaySubcategories我想将它们分成两个方法,但是当我从第一个方法 ( ) 中调用另一个方法 ( ) 时getSubcategories,值会发生event变化。this与块中的情况相同fetch- 我需要先将其分配,self以便稍后能够与对象本身相关。
有一个更好的方法吗?就像所有方法都可以访问的变量(Ruby 中的实例变量)一样?或者我根本不应该将它们分成两个函数(不是 JS 方式)?
import {Controller} from "stimulus"
export default class extends Controller {
static targets = ["categoryId", "categoryLabel", "subcategoryList", "subcategoryHeader"]
getSubcategories() {
let category_id = event.target.firstElementChild.value
let url = "/api/categories/" + category_id + "/subcategories?levels=1"
let self = this
let e = event
fetch(url)
.then(response => response.json())
.then(json_response => {
self.displaySubcategories(json_response, e)
})
}
displaySubcategories(json_response, event) {
subcategories.forEach(function (subcategory) {
let category_label_copy = this.cloneLabel(current_label, subcategory)
current_label.classList.add("chosen")
subcategory_list.appendChild(category_label_copy)
}, this)
}
}
Run Code Online (Sandbox Code Playgroud)
费用#getSubcategories">
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1698 次 |
| 最近记录: |