Ext js覆盖init组件功能

Jac*_*cob 1 html javascript overriding extjs

我试图覆盖类的initComponent功能中的一些代码Ext.window.MessageBox.但是,我所改变的一切都没有得到应用.

这里有什么问题?我错过了什么吗?

Ext.define('hds.override.MessageBox', {
    override: 'Ext.window.MessageBox',

   initComponent: function() {

    console.log("init component 1"); //not reached

    this.callParent();


    console.log("init component 2"); //not reached
  }


});
Run Code Online (Sandbox Code Playgroud)

编辑:

我也尝试用extend替换覆盖,但仍未达到内部intiComponent.更改为扩展时,是否需要更改文件的位置?

Ami*_*viv 5

如果你想要的是改变其行为Ext.Msg是类的一个实例,Ext.window.MessageBox你需要使它成为被覆盖类的一个实例:

Ext.define('MyMessageBox', {
    override: 'Ext.window.MessageBox',
    initComponent: function() {
        this.callParent();
        //your changes here..
    }
},function() {
    Ext.MessageBox = Ext.Msg = new this();
});
Run Code Online (Sandbox Code Playgroud)

看看这个小提琴,我改变了initComponent中的默认填充