簡體   English   中英

從ExtJS 4中的表單中卸載/取消記錄的正確方法是什么?

[英]What is the proper way to unload/unbind a record from a form in ExtJS 4?

我想允許用戶在ExtJS 4中從同一表單創建新記錄並編輯現有記錄。我正在使用ExtJS 4.0.7。

對我來說,加載記錄很容易。

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

但是,如果我想重新開始,就無法卸載它! 至少,我找不到正確的方法。 我已經研究了幾個小時,甚至還研究了一些Ext核心代碼來尋找答案。 我想出的最好的“卸載”記錄是:

form._record = null;

如果我沒有明確聲明_recordnull ,則Ext將始終嘗試更新存儲在該處的記錄。 form.reset(); 也不會清除加載的記錄。

有沒有一種“適當的”方法來清除與表格相關的記錄,以便可以保存新記錄?

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;時您做對了form._record = null; 就個人而言,我希望delete form._record ,但是您的方法也應該可行。

文檔描述reset方法的可選的first參數為true會解除綁定loadRecord設置的任何記錄。 因此,在Ext 4和Ext 5中,您可以執行以下操作:

yourForm.reset(true);

在內部,它可以:

delete me._record;

我將嘗試制作空白記錄並加載該記錄以清除表單和記錄。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM