来自 jQuery UI 对话框的 Knockout 取消更新

Knockout cancel update from jQuery UI dialog

我有父模型 person。视图模型有一个 person 的可观察数组。对于 edit/add 一个人,我有一个 jQuery UI 对话框 (Ok/Cancel)。

var viewModel = function(){
    var self = this;
    self.personEntry = ko.observable(new person());
    self.people = ko.observableArray();
    self.populatePeople = function(jsonPeopleObj){//adds person objects to people array};
};

personEntry 子模型使用 with 绑定绑定到 jQuery UI 对话框。使用 people 可观察数组上的 foreach 绑定生成 table。

现在,当我尝试修改记录时,我会在单击该行时调用以下函数。

function rowSelected(item,event){
    viewModel.personEntry(item);
    openDialog();
}

这会在 jQuery UI 对话框中打开包含所选行详细信息的对话框。但是,如果我更改一个值,然后在对话框中按取消,table 仍然会被修改为一个新值,这不应该发生。有什么想法吗?

如果需要,我可以放一个示例代码。

我已经解决了这个问题...

https://jsfiddle.net/ramkiFiddle/v29exev5/59/

self.amendDetails = function(item, event) {
    itemProgressed = item;
    operation = 'Amend';
    var tempObj = new Person(item.Name(), item.Age());
    pageModel.personEntry(tempObj);
    $("#personEntry").dialog('open');
  }