J'ai un composant avec un ensemble spécifique de données de départ:
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
}
}
Ce sont des données pour une fenêtre modale, donc quand elle s'affiche, je veux qu'elle commence avec ces données. Si l'utilisateur annule à partir de la fenêtre, je souhaite réinitialiser toutes les données.
Je sais que je peux créer une méthode pour réinitialiser les données et réinitialiser manuellement toutes les propriétés des données à leur origine:
reset: function (){
this.modalBodyDisplay = 'getUserInput';
this.submitButtonText = 'Lookup';
this.addressToConfirm = null;
this.bestViewedByTheseBounds = null;
this.location = {
name: null,
address: null,
position: null
};
}
Mais cela semble vraiment bâclé. Cela signifie que si jamais je modifie les propriétés de données du composant, je devrai m'assurer de ne pas oublier de mettre à jour la structure de la méthode de réinitialisation. Ce n'est pas absolument horrible puisqu'il s'agit d'un petit composant modulaire, mais cela fait hurler la partie optimisation de mon cerveau.
La solution qui, selon moi, fonctionnerait serait de récupérer les propriétés de données initiales dans une ready
méthode, puis d'utiliser ces données enregistrées pour réinitialiser les composants:
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;
}
}
Mais l' initialDataConfiguration
objet change avec les données (ce qui est logique car dans la méthode de lecture, nous initialDataConfiguration
obtenons la portée de la fonction de données.
Existe-t-il un moyen de récupérer les données de configuration initiales sans hériter de la portée?
Est-ce que je réfléchis trop à cela et qu'il existe un moyen meilleur / plus simple de le faire?
Le codage en dur des données initiales est-il la seule option?