extjs store error handling
Solution 1
Finally, I've found out that if I send back empty data it works as expected. So I don't need to send back any fictional data, my server response is:
({
"success": false,
"message": "some text",
"data": {}
})
Solution 2
You should catch one of the two Store events:
loadexception
(deprecated)exception
For example you could:
// 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();
You could also just use the success and failure events from the store to take action based on the success flag.
kalan
Updated on June 15, 2020Comments
-
kalan almost 4 years
I am trying to handle an exception in an
Ext.data.Store
instance when creating a newExt.data.Record
. When the server responds with the following json:{"success": false, "message": "some text"}
I get an exception of type 'request', even though the server returns an HTTP 200 Response!
To get a 'remote' error I have to create an object with the
root
property({ "success": false, "message": "some text", "data": { "PositionId": "00000000-0000-0000-0000-000000000000", "Name": "123" } })
...but I don't want this. Is there any way to change this behaviour?
Also, when I insert a record in the store, it is automatically added to the associated grid, but if an error occurs it remains there, so I need to reload store on every error. Is there any better way to do this?