kal*_*lan 6 error-handling json extjs jsonstore
我正在尝试Ext.data.Store在创建新的实例时处理异常Ext.data.Record.当服务器使用以下json响应时:
{"success": false, "message": "some text"}
Run Code Online (Sandbox Code Playgroud)
我得到"请求"类型的异常,即使服务器返回HTTP 200响应!
要获得"远程"错误,我必须使用root属性创建一个对象
({
"success": false,
"message": "some text",
"data": {
"PositionId": "00000000-0000-0000-0000-000000000000",
"Name": "123"
}
})
Run Code Online (Sandbox Code Playgroud)
......但我不想要这个.有没有办法改变这种行为?
此外,当我在商店中插入记录时,它会自动添加到关联的网格中,但如果发生错误,它仍然存在,所以我需要在每个错误上重新加载存储.有没有更好的方法来做到这一点?
Jos*_*ust 10
您应该捕获两个Store事件中的一个:
loadexception (废弃)exception例如,您可以:
// make the store
var myStore = new Ext.data.Store({...});
// catch loading exceptions
myStore.on('exception',function( store, records, options ){
// do something about the record exception
},this);
// load store
myStore.load();
Run Code Online (Sandbox Code Playgroud)
您还可以使用商店中的成功和失败事件,根据成功标志执行操作.
最后,我发现如果我发回空数据,它会按预期工作。所以我不需要发回任何虚构的数据,我的服务器响应是:
({
"success": false,
"message": "some text",
"data": {}
})
Run Code Online (Sandbox Code Playgroud)