1

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

1 回答 1

3

您最初的猜测是正确的,使用select.actions.close是可能的,但是您必须将其排入运行循环以避免双重渲染问题。

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

  checkPastingMultipleElements(text, select) {
    Ember.run.scheduleOnce('actions', null, select.actions.choose, [text]);
  }
于 2016-12-06T23:57:08.837 回答