Extjs4类监听器和函数

时间:2014-08-26 12:24:24

标签: extjs extjs4

在这段代码中,有许多现有的函数,但我必须开始使用该函数创建一些扩展的ExtJS类。

如何将现有函数添加到类的侦听器?

例如:

Ext.define("My.Grid", { 
    extend: 'Ext.grid.Panel',
    //...
    initComponent: function() {
        //...
        Ext.apply(this, {
            //...
            tbar: [{
                xtype: 'button',
                icon: 'img/x.png',
                handler: function(){
                   // need to call randomOtherFunction here
                }
            }]
        });
    }
});

function randomOtherFunction () {
    // ...
}

2 个答案:

答案 0 :(得分:1)

Yessss,它有效! :) ...我希望,在旧的其他函数转到对象之前它会很好。

function randomOtherFunction () {
    // ...
}

My.functions = {
    randomOtherFunction: function () {
        randomOtherFunction();
    }
};

Ext.define("My.Grid", { 
    extend: 'Ext.grid.Panel',
    //...
    initComponent: function() {
        //...
        Ext.apply(this, {
            //...
            tbar: [{
                xtype: 'button',
                icon: 'img/x.png',
                handler: function(){
                    My.functions.randomOtherFunction();
                }
            }]
        });
    }
});

答案 1 :(得分:-1)

您必须检查范围并使用它来调用处理函数。 试试下面的

Ext.define("My.Grid", { 
    extend: 'Ext.grid.Panel',
    //...
    initComponent: function() {
        //...
        Ext.apply(this, {
            //...
            tbar: [{
                xtype: 'button',
                icon: 'img/x.png',
                scope:this,
                handler:this.randomOtherFunction
            }]
        });
    }
});

function randomOtherFunction () {
    // ...
}

希望它对你有所帮助。