У меня есть компонент с определенным набором исходных данных:
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 все данные к этому.
Я знаю, что могу создать метод для reset данных и просто вручную установить все свойства данных обратно на их оригинал:
reset: function (){
this.modalBodyDisplay = 'getUserInput';
this.submitButtonText = 'Lookup';
this.addressToConfirm = null;
this.bestViewedByTheseBounds = null;
this.location = {
name: null,
address: null,
position: null
};
}
Но это кажется действительно неряшливым. Это означает, что если я когда-либо внес изменения в свойства данных компонента, мне нужно будет убедиться, что я не могу обновить структуру метода reset. Это не совсем ужасно, поскольку это небольшой модульный компонент, но он делает часть оптимизации моего мозга криком.
Решение, которое, как я думал, будет работать, заключается в том, чтобы захватить исходные свойства данных в методе ready
, а затем использовать эти сохраненные данные для reset компонентов:
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
получает область действия функции данных.
Есть ли способ захватить исходные данные конфигурации без наследования области?
Я переусердствую это и там лучший/более простой способ сделать это?
Является ли hardcoding исходными данными единственным вариантом?