使用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'
非常感谢任何帮助
答案 0 :(得分:0)
Ext.Ajax类是Ext.data.Connection类的单例实例,因此不能以这种方式覆盖它。
您可以替换单身人士的功能,而不是创建一个适当的'覆盖。
一种方法是执行以下操作:
Ext.Ajax.request = Ext.Function.createInterceptor(Ext.Ajax.request, function(){
console.log('override');
});
唯一的问题是你只能在原始功能之前添加新代码,但类似的技巧可以解决这个问题。
可以在此处找到相关问题:sencha touch override ext.ajax