Sencha touch 覆盖失败并出现错误

Sencha touch 覆盖失败并出现错误,sencha-touch,sencha-touch-2,Sencha Touch,Sencha Touch 2,使用Sencha Touch 2.0.0,我试图覆盖类的行为。 我正在关注这些和这个 但使用以下代码: Ext.define('MP.service.Override', { extend: 'Ext.Base', override: 'Ext.Ajax', request: function(cfg) { console.log('overriden'); this.callOverridden(arguments); } })

使用Sencha Touch 2.0.0,我试图覆盖类的行为。
我正在关注这些和这个
但使用以下代码:

Ext.define('MP.service.Override', {
    extend: 'Ext.Base',
    override: 'Ext.Ajax',

    request: function(cfg) {
        console.log('overriden');
        this.callOverridden(arguments);
    }
});
我在控制台中遇到此错误:

Uncaught TypeError: Object [object Object] has no method 'override' 

任何帮助都将不胜感激

Ext.Ajax类是Ext.data.Connection类的单例实例,因此不能以这种方式重写它

您可以替换singleton的函数,而不是创建“正确”的覆盖

一种方法是执行以下操作:

Ext.Ajax.request = Ext.Function.createInterceptor(Ext.Ajax.request, function(){ 
    console.log('override');
});
唯一的问题是,您只能在原始函数之前添加新代码,但类似的技术可以解决这个问题

相关问题可在此处找到: