2011-11-03 8 views
5

मैं उपयोगकर्ताओं को नए रिकॉर्ड बनाने और एक्स्टजेस 4 में उसी फॉर्म से मौजूदा रिकॉर्ड संपादित करने की अनुमति देना चाहता हूं। मैं ExtJS 4.0.7 के साथ काम कर रहा हूं।ExtJS 4 में किसी फॉर्म से रिकॉर्ड को अनलोड/अनबाइंड करने का सही तरीका क्या है?

मेरे लिए रिकॉर्ड लोड करना आसान है।

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

लेकिन अगर मैं ताजा शुरू करना चाहता हूं, तो इसे उतारने का कोई तरीका नहीं है! कम से कम, मुझे कोई उचित तरीका नहीं मिल सकता है। मैंने पहले से ही घंटों तक शोध किया है, और यहां तक ​​कि उत्तर के लिए कुछ कोर एक्स कोड भी देखा है। सबसे अच्छा मैं "उतारना" एक रिकॉर्ड करने के लिए साथ आने कर सकता है:

form._record = null; 

मैं स्पष्ट रूप से null रूप _record घोषित नहीं करते, Ext हमेशा वहाँ संग्रहीत रिकॉर्ड को अपडेट करने की कोशिश करेंगे। form.reset(); लोड किए गए रिकॉर्ड को भी साफ़ नहीं करता है।

क्या किसी फॉर्म से जुड़े रिकॉर्ड को साफ़ करने का कोई "उचित" तरीका है ताकि एक नया रिकॉर्ड सहेजा जा सके?

उत्तर

4

Ext.form.PanelExt.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 करना पसंद करूंगा, लेकिन आपके दृष्टिकोण को या तो काम करना चाहिए।

0

मैं एक रिक्त रिकॉर्ड बनाने और फॉर्म और रिकॉर्ड को साफ़ करने के लिए लोड करने का प्रयास करता हूं।

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

docs describe यह सच करने के लिए reset विधि के वैकल्पिक पहले पैरामीटर किसी भी रिकॉर्ड loadRecord द्वारा निर्धारित unbinds। तो Ext 4 और 5 में तुम सिर्फ कर सकते हैं:

yourForm.reset(true); 

आंतरिक यह करता है:

delete me._record; 

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^