我有一个商店,我想sync()
与服务器。
Store.sync()
方法包含success
和failure
属性函数,它们以Ext.data.Batch
和options
作为参数。
如果我从服务器得到这样的回复:
{
success: false,
msg: "test error!"
}
failure
方法调用。
如何从msg
方法中访问回复failure
属性?
答案 0 :(得分:5)
store.sync({
failure: function(batch, options) {
alert(batch.proxy.getReader().jsonData.msg);
}
});
答案 1 :(得分:2)
Store.sync()方法有成功和失败属性 - 函数,它们有Ext.data.Batch和options作为参数。
收集batch.exceptions
数组内的任何失败操作。它拥有您所需要的一切。
只需完成失败的操作,处理它们。
操作失败消息("测试错误!")将在内部 - operation.error
store.sync({
failure: function(batch, options) {
Ext.each(batch.exceptions, function(operation) {
if (operation.hasException()) {
Ext.log.warn('error message: ' + operation.error);
}
});
}
});
代理在processResponse方法中设置它:
operation.setException(result.message);
其中:
error
属性(错误消息)。result
为Ext.data.ResultSet,result.message
由代理的读者填写,使用读者messageProperty
但是,默认情况下,读者的消息属性为messageProperty: 'message'
。
在您的情况下,您应该为阅读器配置正确的messageProperty,例如:
reader: {
...
messageProperty: 'msg'
}
或从具有metadata
配置属性的服务器响应返回,如:
{
"success": false,
"msg": "test error!",
"metaData": {
...
"messageProperty": 'msg'
}
}