没有召唤祖先事件

时间:2012-11-02 11:42:57

标签: extjs extjs4

'我有一个基础classe,其中声明了两个监听器:

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');
                    }
                }
            }
        });

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

1 个答案:

答案 0 :(得分: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');
        });
    }
});