我正在尝试创建一个自定义函数,每次服务器发送响应时都会调用该函数。我可以使用以下代码在 Extjs3 中成功执行此操作:
Ext.override(Ext.data.Connection, {
handleResponse : function( response ) {
console.log('function call');
}
});
我想知道我需要改变什么才能让这段代码在 Extjs 4.2.0 中工作?
谢谢,Y_Y
我正在尝试创建一个自定义函数,每次服务器发送响应时都会调用该函数。我可以使用以下代码在 Extjs3 中成功执行此操作:
Ext.override(Ext.data.Connection, {
handleResponse : function( response ) {
console.log('function call');
}
});
我想知道我需要改变什么才能让这段代码在 Extjs 4.2.0 中工作?
谢谢,Y_Y
您实际上不需要覆盖或扩展任何内容。的文档Ext.data.Connection
显示它触发了三个事件。其中两个是requestcomplete
请求成功时requestexception
触发,请求失败时触发。
现在,请参阅Ext.util.Observable.observe
演示如何捕获给定类的所有事件的文档。例子:
Ext.util.Observable.observe(Ext.data.Connection, {
requestcomplete: function(conn, response, options){
// Do stuff on success
},
requestexception: function(conn, response, options){
// Do stuff on failure
}
});
这就是您获取所有Ext.Ajax
请求的所有完成事件的方式。在内部,该observe
方法使用该capture
方法,因此您必须releaseCapture
在清理时调用您的类。
查看 Extjs 4.2.0 库文件 Connection.js 我注意到没有声明像在 Extjs 3.2.1 中声明的“handleResponse”函数。相反,Extjs 4.2.0 有一个“onComplete”功能。覆盖这个函数让我能够在“requestcomplete”之前处理一些事情,类似于覆盖“handleResponse”。