2011-11-03 7 views
5

Desidero consentire agli utenti di creare nuovi record e modificare i record esistenti dallo stesso modulo in ExtJS 4. Sto lavorando con ExtJS 4.0.7.Qual è il modo corretto di scaricare/separare un record da un modulo in ExtJS 4?

È facile per me caricare un record.

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

Ma se voglio ricominciare da capo, non c'è modo di scaricarlo! Almeno, nessun modo corretto che io possa trovare. Ho già studiato per ore, e ho anche guardato attraverso il codice Ext di base per una risposta. Il meglio che ho potuto venire con a "scaricare" un record è:

form._record = null; 

Se non mi dichiaro esplicitamente _record come null, Ext cercherà sempre di aggiornare il record memorizzate. form.reset(); non cancella neanche il record caricato.

Esiste un modo "corretto" per cancellare il record associato a un modulo in modo che un nuovo record possa essere salvato?

risposta

4

Ext.form.Panel è derivato da Ext.form.Basic, dove _record esiste come variabile privata. E se dai un'occhiata al codice Ext.form.Basic http://docs.sencha.com/ext-js/4-0/source/Basic.html#Ext-form-Basic-method-getRecord noterai che non esiste un metodo chiaro per _record. Il metodo reset si limita a ripristinare i campi del modulo. Quindi stai facendo bene quando si imposta form._record = null; Personalmente, preferirei fare delete form._record, ma il tuo approccio dovrebbe funzionare entrambi.

0

Vorrei provare a fare un record vuoto e caricare quello per cancellare il modulo e registrare.

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

Il docs describe che facoltativa primo parametro del metodo del reset true scioglie qualsiasi record stabilito da loadRecord. Quindi, in Ext 4 e 5 si può solo fare:

yourForm.reset(true); 

Internamente lo fa:

delete me._record; 
Problemi correlati