我目前正在使用优秀的ember-电源-选择 https://ember-power-select.com作为一部分添加ember-bootstrap 形式 https://www.ember-bootstrap.com/api/classes/Components.Form.html.
我在表单上有多个下拉项目,我试图将它们的处理方式统一到一个可以用作onChange
电源选择调用中的操作:
{{#form.element
controlType="power-select"
label="Destination"
value=destinationSelection
options=destinationOptions
as |el|}}
{{#el.control
onChange=(action "setDropDown")
searchField="name"
as |item|}}
{{item.name}}
{{/el.control}}
{{/form.element}}
我的处理函数将根据下拉列表的选择简单地设置一些值:
actions: {
setDropDown(selected, string) {
handleDropDown(selected, dropdown, this)
}
}
function handleDropDown(selected, dropdown, controller) {
let selection = `${dropdown}Selection`
let modelid = `model.${dropdown}_id`
set(controller, selection, selected)
set(controller, modelid, selected.id)
}
为了让它工作,我真的需要能够将一个字符串传递给setDropDown
行动从onChange
组件调用的一部分,否则我无法告诉处理函数应该设置哪些特定字段,而无需为每个下拉列表创建操作。
但是,当我尝试传递多个参数时,例如
onChange=(action "setDropDown" "destination")
or
onChange=(action "setDropDown" selected "destination")
我失去了基本功能onChange
将所选项目作为第一个参数的操作。
我浏览了文档,找不到任何库作者将多个参数传递给onChange
行动并想知道是否可以在不破坏库功能的情况下进行。