Tôi có một thành phần với một bộ dữ liệu bắt đầu cụ thể:
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
}
}
Đây là dữ liệu cho một cửa sổ phương thức, vì vậy khi nó hiển thị, tôi muốn nó bắt đầu với dữ liệu này. Nếu người dùng hủy khỏi cửa sổ, tôi muốn đặt lại tất cả dữ liệu thành này.
Tôi biết tôi có thể tạo một phương pháp để đặt lại dữ liệu và chỉ cần đặt thủ công tất cả các thuộc tính dữ liệu về ban đầu:
reset: function (){
this.modalBodyDisplay = 'getUserInput';
this.submitButtonText = 'Lookup';
this.addressToConfirm = null;
this.bestViewedByTheseBounds = null;
this.location = {
name: null,
address: null,
position: null
};
}
Nhưng điều này có vẻ thực sự cẩu thả. Có nghĩa là nếu tôi thực hiện thay đổi đối với các thuộc tính dữ liệu của thành phần, tôi sẽ cần đảm bảo rằng tôi nhớ cập nhật cấu trúc của phương thức đặt lại. Điều đó không hoàn toàn kinh khủng vì nó là một thành phần mô-đun nhỏ, nhưng nó khiến phần tối ưu hóa trong não của tôi kêu gào.
Giải pháp mà tôi nghĩ sẽ hiệu quả là lấy các thuộc tính dữ liệu ban đầu trong một ready
phương thức và sau đó sử dụng dữ liệu đã lưu đó để đặt lại các thành phần:
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;
}
}
Nhưng initialDataConfiguration
đối tượng đang thay đổi cùng với dữ liệu (điều này có ý nghĩa vì trong phương thức đọc, chúng ta initialDataConfiguration
đang nhận phạm vi của hàm dữ liệu.
Có cách nào để lấy dữ liệu cấu hình ban đầu mà không kế thừa phạm vi không?
Tôi có suy nghĩ quá nhiều về điều này và có cách nào tốt hơn / dễ dàng hơn để làm điều này không?
Mã cứng dữ liệu ban đầu có phải là lựa chọn duy nhất không?