我正在使用 ko.js 来显示场地表。
每个场地都有一个编辑按钮,它会弹出一个显示可编辑数据的对话框。
当按下编辑按钮时,我将场地绑定到对话框,并将数据的副本存储在撤消对象中。
当我编辑对话框上的字段时,对话框和表格都会更新。
当我取消编辑时,我将场地绑定到撤消对象状态。这会更新对话框,但不会在表上更新。
知道我在这里做错了什么吗?
这是我的视图模型。
VenueViewModel = function(venues) {
var self = this;
var venueModal = $("#venueModal");
this.venues = ko.mapping.fromJS(venues);
this.venue = ko.observable();
this.venueUndo = null;
//Cancel an edit
this.cancel = function() {
self.venue(ko.mapping.fromJS(self.venueUndo));
venueModal.modal("hide");
}
//Edit an existing venue
this.edit = function(venue) {
self.venue(venue);
self.venueUndo = ko.mapping.toJS(venue);
venueModal.modal("show");
};
//Create a new venue
this.create = function() {
self.venue(new Venue());
venueModal.modal("show");
};
};
ko.applyBindings(new VenueViewModel(venues));