Ember Power Select - 如何关闭EPS的选择

时间:2016-12-06 19:38:09

标签: javascript ember.js ember-addon

我尝试在使用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
}

1 个答案:

答案 0 :(得分:3)

您最初的猜测是正确的,可以使用select.actions.close,但您必须在runloop中将其排入队列以避免双重渲染问题。

此外,如果您要做的是选择一个值并关闭选择,select.actions.choose正是您想要的。

  checkPastingMultipleElements(text, select) {
    Ember.run.scheduleOnce('actions', null, select.actions.choose, [text]);
  }