0
我经常在一个应用程序中使用它,所以我想缩短它,如果我可以做一个扩展类来处理所有回调逻辑在一个地方,我试图设置它,但失败时试图加载与类:如何扩展Ext.Ajax?
Uncaught TypeError: Cannot read property 'isInstance' of undefined ext-all-debug.js:4136
ExtClass.registerPreprocessor.config ext-all-debug.js:4136
Ext.apply.doProcess ext-all-debug.js:4007
Manager.registerPostprocessor.uses ext-all-debug.js:6037
Ext.apply.require ext-all-debug.js:5771
Manager.registerPostprocessor.uses ext-all-debug.js:6004
Ext.apply.doProcess ext-all-debug.js:4007
Ext.apply.doProcess ext-all-debug.js:4008
Ext.apply.process ext-all-debug.js:3995
Ext.Class.ExtClass ext-all-debug.js:3911
Ext.ClassManager.create ext-all-debug.js:4676
Ext.apply.define ext-all-debug.js:5095
(anonymous function) Ajax.js:1 //My extended Ajax singleton
这里是我尝试调用它
var changes = e.record.getChanges();
if (e.record.get('id'))
changes.id = e.record.get('id');
APP.ux.Ajax.request({
url: '/admin/user/save/',
params: changes,
scope: this
});
UPDATE 这是有道理的,我不能相信忽视的一点,但我仍然获得相同的读取属性是实例'上面的未定义错误。这是现在的样子
这里是简单类(更新)
Ext.define('APP.ux.Ajax', {
extend: 'Ext.data.Connection',
requires: [
'APP.ux.Msg'
],
singleton : true,
autoAbort : false,
request: function(config) {
var cfg = config;
Ext.apply(cfg, {
success: function(form, action) {
APP.ux.Msg.alert('Success', action.result.msg);
//TODO: Add more logic here
},
failure: function(form, action) {
switch (action.failureType) {
case Ext.form.action.Action.CLIENT_INVALID:
APP.ux.Msg.alert('Failure', 'Form fields may not be submitted with invalid values');
break;
case Ext.form.action.Action.CONNECT_FAILURE:
APP.ux.Msg.alert('Failure', 'Ajax communication failed');
break;
case Ext.form.action.Action.SERVER_INVALID:
APP.ux.Msg.alert('Failure', action.result.msg);
break;
}
}
});
this.callParent(cfg);
}
});
感谢您的帮助,我有更新了上面的问题。 – Nathan
可能你不需要'扩展'标准的Ajax类。从你的单身人士课程中调用它? – sha
嗯,这可能是正确的想法。当我给它一个镜头时,我会报告。 – Nathan