答案 0 :(得分:5)
setColor
函数将接收event
属性作为最后一个参数。
onChange={{action 'setColor' value="target.value"}}
这样value
属性将从event
中检索出来。所以这将按预期工作。但是
onChange={{action 'setColor' model value="target.value"}}
当我们发送value
作为第一个参数时, target.value
属性将尝试从model
属性获取model
,并且默认event
参数将作为第二个参数传递论点。因此结合不了工作。
解决方案是
onChange={{action 'setColor' model}}
和内部行动,
actions: {
setColor(model, event) {
let value = event.target.value;
}
}
答案 1 :(得分:0)
我只是遇到了同样的问题,但是对这里接受的答案不满意,因为我有2个不同的输入(下拉列表和文本字段)使用了相同的操作(但没有相同的路径来解析值),所以我必须使用value="..."
作为动作助手的一部分。
我在https://stackoverflow.com/a/45762071/45948
中找到了答案所以您的情况是:
onChange={{action (action 'setColor' model) value="target.value"}}
然后简单地:
actions: {
setColor(model, option) {
...
}
}