extjs extjs4 extjs4.1

extjs - Store.sync() con un nuevo registro no importa los campos generados por el servidor en respuesta



extjs4 extjs4.1 (1)

Tuve el mismo problema (Ext 4.2.1). El motivo fue que olvidé configurar idProperty en el valor predeterminado del lector como "id", el mío es "_id". Ext silenciosamente no pudo actualizar el registro porque no reconoció un ID coincidente. Ahora funciona como un encanto!

Por lo tanto, asegúrese de que la respuesta esté en el formato correcto esperado por su lector (root, idProperty, definición del modelo, ...)

Tengo una grilla con edición de filas habilitada. Cuando agrego una fila y llamo store.sync (), el servidor genera ciertos campos en ese registro y devuelve la información completa del registro en la respuesta. Sin embargo, ExtJS no parece actualizar su copia del registro, a excepción de la identificación. ¿Hay alguna manera de hacerlo, o necesito escribir un código personalizado?

Este es un extracto del controlador de la cuadrícula:

doneEdit: function (editor, e, eOpts) { var me = this; // // Set up loading mask on grid during update (if record changed and is valid) // if (e.record.dirty && e.record.isValid()) { e.grid.showUpdatingMask(); e.store.sync({ success: me.onSaveSuccess, failure: me.onSaveFailure, scope: me }); } else { me.cancelEdit(editor, e, eOpts); } }, // // onSaveSuccess() is only used for row editor grids // onSaveSuccess: function (batch, options) { var me = this, grid = me.getGrid(); grid.getStore().filter([]); // re-run whatever filters already exist, and sort. grid.hideMask(); // update read-only active store if specified by sub-class if(me.activeStore) { // $TODO: handle load failure me.activeStore.load(); } },