I am trying to handle an exception in an Ext.data.Store
instance when creating a new Ext.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?
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With