我有一个刺激控制器
# app/javascript/controllers/clubs_controller.js
// handles micropost javascripts
import { Controller } from "stimulus"
import Rails from '@rails/ujs';
export default class extends Controller {
connect() {
}
wait_for_clubs(event) {
event.preventDefault()
console.log("in wait_for_clubs", event.target)
const id = event.target.dataset.value
console.log("id", id)
}
}
}
和 HTML 代码
<div data-controller="clubs">
<span data-action="load@window->clubs#wait_for_clubs" data-value='<%= @user.id %>'>Waiting for Clubs to be prepared</span>
</div>
考虑到当页面被加载时,控制器已经获取了用户的ID。但是,当我重新加载页面时,在控制台中看到如下错误:
TypeError: Cannot read property 'value' of undefined
该语句由事件 var id = event.target.dataset.value;
触发。
但是,如果我将事件从 load@window
更改为 click
,那么当我点击该 span 时,代码可以正常工作并检索 ID。 我该怎么办?