我无法从ExtJS中的控制器获取组件

时间:2015-05-29 08:32:53

标签: extjs components

我已经定义了一个这样的窗口:

Ext.define(), { 'MyApp.view.MyCustomWindow'
    extends: 'Ext.window.Window',
    alias: 'widget.mywindow',
    ...
    items: [{
        xtype: 'form',
        items: [{
            xtype: 'fieldset',
            ...
            items: [{
               xtype: 'combobox',
               ...
               itemId: 'comboFilter'
            }]
        }]
    }],
    dockedItems: [{
        xtype: 'toolbar',
        items:[{
            xtype: 'button',
            itemId: 'okBtn'
        }]
    }]
}

然后我想从我的控制器中获取组件:

init: function(application) {
    var me = this;
    this.control({
        "mywindow combobox#comboFilter": {
            keypress: me.onClickCombo   // removed <'>, still not working
         },
         "mywindow button#okBtn": {
            click: me.onButtonOk        // works!!!
         }
    }); 
}

onClickCombo永远不会被召唤。 mywindow combobox#comboFilter有什么问题?

编辑:添加了一个有效的“确定按钮”!看看我上面代码的编辑。

2 个答案:

答案 0 :(得分:1)

您的选择器不是问题。

如果您希望触发enableKeyEvents: true事件,请将keypress添加到您的组合框中。

请参阅keypress事件文档:

  

仅当enableKeyEvents设置为true时才会触发此事件。

答案 1 :(得分:-1)

试试这个。

 "mywindow combobox#comboFilter": {
     keypress: me.onClickCombo // without <'>
  }

如果不是解决方案,请更改:

"mywindow combobox[itemId=comboFilter]":{
     keypress: me.onClickCombo // without <'>
}

<强>更新

将此配置添加到组件。

Sencha api - Combobox Events

Keypress input field event. This event only fires if enableKeyEvents is set to true.