我尝试在使用Ember Power Select执行搜索之前关闭选择框。假设用户粘贴列表并自动设置所选项目,我假设用户知道他在寻找什么。
我尝试使用select.actions.close()
,但似乎它与onClose()事件有关。我也尝试使用属性opened
,但更改它并没有显示任何差异。
我的组件
{{#power-select-multiple
renderInPlace=true
search=(action "mySearch")
selected=selected_item
onchange=(action (mut selected_item))
oninput=(action "checkPastingMultipleElements")
opened=checkSelect
as |name|
}}
{{name}}
{{/power-select-multiple}}
我的行动
checkPastingMultipleElements(text, select) {
this.set('selecteded_item', [text]);
// error
// select.actions.close()
// does nothing
// if (text.length === 4) { this.set('checkSelect', false); }
return false; // if true, it executes the search
}
答案 0 :(得分:3)
您最初的猜测是正确的,可以使用select.actions.close
,但您必须在runloop中将其排入队列以避免双重渲染问题。
此外,如果您要做的是选择一个值并关闭选择,select.actions.choose
正是您想要的。
checkPastingMultipleElements(text, select) {
Ember.run.scheduleOnce('actions', null, select.actions.choose, [text]);
}