从ExtJS 4中的表单中卸载/取消绑定记录的正确方法是什么?

Joh*_*ull 5 javascript extjs extjs4

我想允许用户在ExtJS 4中创建新记录并从同一表单编辑现有记录.我正在使用ExtJS 4.0.7.

我很容易加载记录.

var form = Ext.ComponentQuery.query('#myForm');
form.loadRecord(record);
Run Code Online (Sandbox Code Playgroud)

但如果我想重新开始,就没有办法卸下它!至少,没有找到合适的方法.我已经研究了几个小时,甚至还查看了一些核心的Ext代码以获得答案.我能想出的"卸载"记录的最好方法是:

form._record = null;
Run Code Online (Sandbox Code Playgroud)

如果我没有明确声明_recordnull,Ext将始终尝试更新存储在那里的记录.form.reset();也不清除加载的记录.

是否有"正确"的方法来清除与表单相关的记录,以便保存新记录?

Pav*_*sky 4

Ext.form.Panel派生自Ext.form.Basic,其中 _record 作为私有变量存在。如果您查看Ext.form.Basic http://docs.sencha.com/ext-js/4-0/source/Basic.html#Ext-form-Basic-method-getRecord的代码 ,您会注意到有_record 没有明确的方法。reset方法只是重置表单字段。因此,您在设置时做得对form._record = null; ,就个人而言,我更愿意这样做delete form._record,但您的方法也应该有效。