¿Cómo capturar las excepciones de un CRUD en un Store?
Hola humanidad. Vaya que llevaba tiempo sin darme una vuelta por aquí, ¡¡pero he vuelto con dudas!!!
Bien, a ver puedo plantear bien mi problema:
Estoy creando una aplicación con ExtJS 4 siguiendo el paradigma MVC. Bien, tengo una grilla que carga datos, y en general todo funciona bien. El problema surge cuando quiero campurar excepciones al borrar filas de las grillas.
Por el momento el código que tengo es simple y el que sale en todos los ejemplos:
store.remove(record);
store.sync();
Y bien, envía la petición, la capturo y ejecuto la acción, devuelvo un JSON con la forma:
{succes: true, msg: 'borrado con éxito'}
Pero veo que las cosas están funcionando al revez de mi lógica. El Store primero elimina los record, y desde luego, en la grilla desaparece la o las filas eliminadas, y luego envía la petición al server (al llamar a sync()). ¡¿Pero que pasa si el servidor no puede borrar el daro?! O.O
En ese caso, en el server, manejo una excepción, y por el momento devuelvo un JSON con la forma:
{success: false, msg: 'Error al borrar'}
Si veo en firebug, veo que en efecto ese JSON es lo que se ha devuelto, pero el Store siempre quita la/las fila/filas. Pero yo quiero capturar ese hecho de que en realidad no borró nada y mostrar un mensaje de error para indicarle al usuario que la eliminnación falló.
Y claro, también quiero que si no se borra el dato en el servidor, ¡tampoco quite la fila de la grilla! (o que al menos la vuelva a poner :P)
Bueno, ¿alguna idea?
Saludos. :D
Hola pos a lo mejor esto te sirve en ExtjsEs subi unos ejemplos de CRUD con extjs 4.x y esto hago pa saber que ondas con los datos:
debes usar el request.action
// 2.-Creamos el Data Store
var MyStoreRoweditor = Ext.create('Ext.data.Store', {
model: 'CompactDisc',//Llamamos el Modelo Antes Creado
autoLoad: true,
autoSync: true,//Sincronizacion con el Servidor
autoSave: true, //
¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook
Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.