覆盖失败,错误
问题描述:
使用Sencha Touch 2.0.0我试图重写一个类的行为。
我下面这些docs这forum 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