我有一个带有一组特定的起始数据的组件:
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
};
}
但这似乎很草率。这意味着,如果我曾经更改过组件的数据属性,则需要确保我记得更新了reset方法的结构。因为它是一个小的模块化组件,所以这并不是绝对可怕的,但是它使我的大脑感到最优化。
我认为可行的解决方案是获取方法中的初始数据属性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
对象随数据一起变化(这很有意义,因为在read方法中,我们initialDataConfiguration
正在获取数据功能的范围。
有没有一种方法可以在不继承范围的情况下获取初始配置数据?
我是否在考虑这个问题,并且有一种更好/更简便的方法?
硬编码初始数据是唯一的选择吗?