我有一家商店,我想sync()
用服务器。
Store.sync()
方法有success
和failure
属性函数,它们有Ext.data.Batch
和options
作为参数。
如果我从服务器收到这样的响应:
{
success: false,
msg: "test error!"
}
failure
方法调用。
如何msg
从failure
方法内访问响应属性?
store.sync({
failure: function(batch, options) {
alert(batch.proxy.getReader().jsonData.msg);
}
});
Store.sync() 方法具有成功和失败属性函数,它们具有 Ext.data.Batch 和选项作为参数。
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
if 由代理的阅读器填充,使用阅读器的messageProperty
但是,默认情况下 reader 的 message 属性是messageProperty: 'message'
. 在您的情况下,您应该使用正确的 messageProperty 配置阅读器,例如:
reader: {
...
messageProperty: 'msg'
}
metadata
或从带有配置属性的服务器响应返回,例如:
{
"success": false,
"msg": "test error!",
"metaData": {
...
"messageProperty": 'msg'
}
}