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