0

'我有一个基类,其中声明了两个侦听器:

Ext.define('App.controls.CoWindow', {
extend: 'Ext.window.Window',
listeners: {
    show: {
        fn: function(win, opt){
            alert('opened from base class');
        },
        scope: this
    },
    close: {
        fn: function() {
            alert('closed from base class');
        }
    }
}
})

如果我声明一个扩展它的新类并配置侦听器,则不会调用祖先事件:

var procura = Ext.create('App.controls.CoWindowEx', {
            listeners: {
                close: {
                    fn:function() {
                        alert('closed from extending class');
                    }
                }
            }
        });

当我需要这两条消息时,我只会“从扩展类中关闭”。

4

1 回答 1

0

因为您正在覆盖超类原型上的侦听器配置。如果你必须这样做:

Ext.define('App.controls.CoWindow', {
    extend: 'Ext.window.Window',

    initComponent: function(){
        this.callParent();
        this.on('show', function(){
            console.log('super show');
        });
        this.on('close', function(){
            console.log('super close');
        });
    }
});
于 2012-11-02T11:46:39.370 回答