提问人:Ignacio 提问时间:9/19/2020 更新时间:9/28/2020 访问量:4122
无法在 collection_select Rails 6 中使 Stimulus JS 数据操作
Can't make Stimulus JS data-action in collection_select Rails 6
问:
我是 Stimulus JS 的新手。我有点卡在尝试使用表单(使用 rails g 脚手架创建)中制作一个简单的事件触发。collection_select
这是我的(刺激)文件:dropdown-controller.js
import { Controller } from "stimulus"
export default class extends Controller {
static targets = ["target"];
handleChange() {
console.log('works!')
}
}
这是我的文件:_forms.html.erb
<%= form_with(model: stock_order, local: true) do |form| %>
...
<section data-controller="dropdown">
<div class="field">
<%= form.label :company_id %>
<%= form.collection_select :company_id, Company.all, :id, :name, data: {action: "change->dropdown#handleChange"} %>
</div>
</section>
<div class="actions">
<%= form.submit %>
</div>
<% end %>
我尝试了很多东西:
<%= form.collection_select :company_id, Company.all, :id, :name, data: {action: "change->dropdown#handleChange"} %>
<%= form.collection_select :company_id, Company.all, :id, :name, {data: {action: "change->dropdown#handleChange"}} %>
<%= form.collection_select :company_id, Company.all, :id, :name, data: {action: "dropdown#handleChange"} %>
...等
如果我使用 html select 标签而不是 rails',我只能触发 .如果我创建测试按钮或改用测试按钮,则会触发该事件。console.log('works!)
collection_select
form.check_box
有什么想法吗?对不起,如果这是一个愚蠢的问题,我没有想法。
谢谢!
答:
是 html 属性,因此您在调用中会错过一个参数data-
form.collection_select
<%= form.collection_select :company_id, Company.all, :id, :name, nil, data: {action: "change->dropdown#handleChange"} %>
请参阅方法说明
评论
:id
评论
handleChange