मेरे पास डेटा शुरू करने के विशिष्ट सेट के साथ एक घटक है:
data: function (){
return {
modalBodyDisplay: 'getUserInput', // possible values: 'getUserInput', 'confirmGeocodedValue'
submitButtonText: 'Lookup', // possible values 'Lookup', 'Yes'
addressToConfirm: null,
bestViewedByTheseBounds: null,
location:{
name: null,
address: null,
position: null
}
}
यह एक मोडल विंडो के लिए डेटा है, इसलिए जब यह दिखाता है कि मैं चाहता हूं कि यह इस डेटा के साथ शुरू हो। यदि उपयोगकर्ता खिड़की से रद्द करता है तो मैं इसके लिए सभी डेटा रीसेट करना चाहता हूं।
मुझे पता है कि मैं डेटा को रीसेट करने के लिए एक विधि बना सकता हूं और बस मैन्युअल रूप से सभी डेटा गुणों को उनके मूल में सेट कर सकता हूं:
reset: function (){
this.modalBodyDisplay = 'getUserInput';
this.submitButtonText = 'Lookup';
this.addressToConfirm = null;
this.bestViewedByTheseBounds = null;
this.location = {
name: null,
address: null,
position: null
};
}
लेकिन यह वास्तव में मैला लगता है। इसका मतलब है कि अगर मैं कभी घटक के डेटा गुणों में बदलाव करता हूं तो मुझे यह सुनिश्चित करने की आवश्यकता होगी कि मुझे रीसेट विधि की संरचना को अपडेट करने की याद है। यह बिल्कुल मामूली नहीं है क्योंकि यह एक छोटा मॉड्यूलर घटक है, लेकिन यह मेरे मस्तिष्क की चीख के अनुकूलन हिस्से को बनाता है।
समाधान जो मैंने सोचा था कि प्रारंभिक डेटा गुणों को एक ready
विधि में हथियाना होगा और फिर घटकों को रीसेट करने के लिए उस सहेजे गए डेटा का उपयोग करना होगा:
data: function (){
return {
modalBodyDisplay: 'getUserInput',
submitButtonText: 'Lookup',
addressToConfirm: null,
bestViewedByTheseBounds: null,
location:{
name: null,
address: null,
position: null
},
// new property for holding the initial component configuration
initialDataConfiguration: null
}
},
ready: function (){
// grabbing this here so that we can reset the data when we close the window.
this.initialDataConfiguration = this.$data;
},
methods:{
resetWindow: function (){
// set the data for the component back to the original configuration
this.$data = this.initialDataConfiguration;
}
}
लेकिन initialDataConfiguration
डेटा के साथ ऑब्जेक्ट बदल रहा है (जो समझ में आता है क्योंकि रीड मेथड में हमारे initialDataConfiguration
डेटा फ़ंक्शन का दायरा बढ़ रहा है।
क्या गुंजाइश को विरासत में लिए बिना प्रारंभिक कॉन्फ़िगरेशन डेटा को हथियाने का एक तरीका है?
क्या मैं इसे खत्म कर रहा हूं और ऐसा करने का एक बेहतर / आसान तरीका है?
क्या प्रारंभिक डेटा को हार्डकोड करना एकमात्र विकल्प है?