Javascript ExtJS组合。过滤时保持扩展

Javascript ExtJS组合。过滤时保持扩展,javascript,events,extjs,combobox,extjs6-classic,Javascript,Events,Extjs,Combobox,Extjs6 Classic,我有一个2字段的组合,本地存储从外部手动加载。 我希望在键入和筛选时此组合处于展开状态 我已经用过滤器设置了侦听器。过滤器工作正常 this.listeners = { beforequery: function(queryPlan){ me.store.clearFilter(true); me.store.filter(filter); return true; } }; 问题

我有一个2字段的组合,本地存储从外部手动加载。 我希望在键入和筛选时此组合处于展开状态

我已经用过滤器设置了侦听器。过滤器工作正常

 this.listeners = {
        beforequery: function(queryPlan){
            me.store.clearFilter(true);
            me.store.filter(filter);
            return true;
        }
    };
问题是,当我开始在组合框中输入时,有时它会在输入第一个字母后打开,然后折叠,即使有要显示的过滤值。我必须按下向下键才能看到过滤后的列表

但是如果我用退格键删除字符-它一直处于打开状态-实际上这就是我需要的

我了解事件链有一些技巧,但无法确切了解如何使用。 手动调用combo.expand()无效。 如果我有typeAhead=true或没有,则没有意义。 这可能是因为我使用displayTpl而不是displayField

有什么想法吗?
提前感谢。

不确定这是否是最佳解决方案,但您可以将
组合的
getPicker()
添加到其中,并使用其中的隐藏/显示自定义逻辑(例如,
beforehide
或任何其他适合您的逻辑)向其添加与显示/隐藏相关的事件处理程序

Combo picker组件是,因此在您的控制器中,类似这样的组件也应该工作:


不确定它是否是最佳解决方案,但您可以将
组合的
getPicker()
添加到其中,并使用其中的隐藏/显示自定义逻辑(例如,
beforehide
或任何其他适合您的逻辑)向其添加与显示/隐藏相关的事件处理程序

Combo picker组件是,因此在您的控制器中,类似这样的组件也应该工作:


这是我的解决方案。我在活动前做这件事。在这种情况下,我可以过滤存储。但问题是过滤后它不能扩展。。。如果我想要过滤器,我需要清除该组合的值。这是我的解决方案。我在活动前做这件事。在这种情况下,我可以过滤存储。但问题是过滤后它不能扩展。。。若我想要过滤器,我需要清除该组合的值
combo.getPicker().on(
    'beforehide',
    function() {
        // Your hide logic here
    }
);
init: function () {
    this.control({
        'combo[name=myCombo] boundlist': {
            beforehide: this.myHandler
        }
    });
}