2011-11-03 11 views
5

Quiero permitir a los usuarios crear nuevos registros y editar registros existentes desde el mismo formulario en ExtJS 4. Estoy trabajando con ExtJS 4.0.7.¿Cuál es la forma correcta de descargar/desvincular un registro de un formulario en ExtJS 4?

Es fácil para mí cargar un registro.

var form = Ext.ComponentQuery.query('#myForm'); 
form.loadRecord(record); 

Pero si quiero empezar de nuevo, no hay manera de descargarlo! Al menos, no hay una forma adecuada de que pueda encontrarlo. Ya investigué durante horas e incluso revisé algunos de los códigos Ext básicos para obtener una respuesta. Lo mejor que podía llegar a a "descarga" es un registro:

form._record = null; 

Si no declaro explícitamente _record como null, Ext siempre tratará de actualizar el registro almacenado allí. form.reset(); tampoco borra el registro cargado.

¿Existe una forma "adecuada" de borrar el registro vinculado a un formulario para que se pueda guardar un nuevo registro?

Respuesta

4

Ext.form.Panel se deriva de Ext.form.Basic, donde _record existe como una variable privada. Y si echa un vistazo al código de Ext.form.Basic http://docs.sencha.com/ext-js/4-0/source/Basic.html#Ext-form-Basic-method-getRecord notará que no hay un método claro para _record. reset método simplemente reinicie los campos del formulario. Lo que está haciendo bien al configurar form._record = null; Personalmente, preferiría hacer delete form._record, pero su enfoque debería funcionar bien.

0

Me gustaría intentar hacer un registro en blanco y cargarlo para borrar el formulario y registrarlo.

var blankRecord = Ext.create('YourModel'); 
yourForm.loadRecord(blankRecord); 
2

El docs describe que el primer parámetro opcional del método reset a cierto desvincula cualquier récord establecido por loadRecord. Así que en Ext 4 y 5 sólo se puede hacer:

yourForm.reset(true); 

Internamente que hace:

delete me._record; 
Cuestiones relacionadas