У мене є компонент із певним набором вихідних даних:
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
отримуємо область дії функції даних.
Чи є спосіб отримати вихідні дані конфігурації без успадкування області дії?
Я надмірно над цим замислююсь, і є кращий / простіший спосіб зробити це?
Чи є єдиним варіантом жорстке кодування вихідних даних?