覆盖失败,错误

问题描述:

使用Sencha Touch 2.0.0我试图重写一个类的行为。
我下面这些docsforum post on the subject
但与下面的代码:覆盖失败,错误

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类的单例实例,因此不能用这种方式重写。

您可以替换单例函数,而不是创建“适当”覆盖。

一种方法是做到以下几点:

Ext.Ajax.request = Ext.Function.createInterceptor(Ext.Ajax.request, function(){ 
    console.log('override'); 
}); 

与此唯一的问题是,你只能之前添加新的代码原有的功能,但类似的技术可以帮你圆这个问题。

有关的问题可以在这里找到:sencha touch override ext.ajax