0

ExtJs 中的控制器如何处理如下所示的事件?如果所有按钮点击都通过控制器,它会减慢很多吗?

Ext.define('App.controller.MyResults', {
    extend : 'Ext.app.Controller',
    stores : ['Store1', 'Store2'],
    models : ['MyModel'],
    views : ['myResults.Grid']
},

init: function() {
    this.control({
        'button': {
            click: this.refreshGrid
        }
    });
}

);

4

1 回答 1

3

是的,它会的,这就是为什么组件选择器应该尽可能具体。在您的情况下,假设myResults.Grid定义为:

Ext.define('myResults.Grid', {
    extend: 'Ext.grid.Panel', // Not necessarily this class
    alias:  'widget.myresultsgrid', // xtype === 'myresultsgrid'
    ...
});

您可以将控制器定义为:

Ext.define('App.controller.MyResults', {
    extend: 'Ext.app.Controller',
    ...
    init: function() {
        this.control({
            'myresultsgrid button': {
                click: this.refreshGrid
            }
        });
    }
});

这将确保您的控制器只能看到click来自 MyResults 网格中按钮的事件。

于 2013-08-19T03:17:54.330 回答