我正在尝试创建一个自定义函数,每次服务器发送响应时都会调用该函数。我可以使用以下代码在Extjs3中成功完成此操作:
Ext.override(Ext.data.Connection, {
handleResponse : function( response ) {
console.log('function call');
}
});
我想知道为了让这段代码在Extjs 4.2.0中运行我需要更改什么?
谢谢,Y_Y
答案 0 :(得分:3)
您实际上不需要覆盖或扩展任何内容。 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
。
答案 1 :(得分:2)
查看Extjs 4.2.0库文件Connection.js我注意到没有声明Extjs 3.2.1中声明的'handleResponse'函数。相反,Extjs 4.2.0具有'onComplete'功能。覆盖此函数使我能够在'requestcomplete'之前处理一些类似于覆盖'handleResponse'的事情。