会場の表を表示するために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));