Mam komponent z określonym zestawem danych początkowych:
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
}
}
To są dane dla okna modalnego, więc kiedy się wyświetli, chcę, aby zaczęło się od tych danych. Jeśli użytkownik zrezygnuje z okna, chcę zresetować wszystkie dane do tego.
Wiem, że mogę utworzyć metodę resetowania danych i po prostu ręcznie przywrócić wszystkie właściwości danych do ich oryginalnych:
reset: function (){
this.modalBodyDisplay = 'getUserInput';
this.submitButtonText = 'Lookup';
this.addressToConfirm = null;
this.bestViewedByTheseBounds = null;
this.location = {
name: null,
address: null,
position: null
};
}
Ale to wydaje się naprawdę niechlujne. Oznacza to, że jeśli kiedykolwiek dokonam zmiany we właściwościach danych komponentu, będę musiał upewnić się, że pamiętam o zaktualizowaniu struktury metody resetowania. To nie jest absolutnie straszne, ponieważ jest to mały modułowy komponent, ale sprawia, że część optymalizacyjna w moim mózgu krzyczy.
Rozwiązaniem, które moim zdaniem zadziałałoby, byłoby pobranie początkowych właściwości danych w ready
metodzie, a następnie użycie tych zapisanych danych do zresetowania komponentów:
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;
}
}
Ale initialDataConfiguration
obiekt zmienia się wraz z danymi (co ma sens, ponieważ w metodzie read initialDataConfiguration
uzyskujemy zakres funkcji data.
Czy istnieje sposób na pobranie początkowych danych konfiguracyjnych bez dziedziczenia zakresu?
Czy za bardzo się nad tym zastanawiam i jest lepszy / łatwiejszy sposób na zrobienie tego?
Czy zakodowanie początkowych danych na stałe jest jedyną opcją?