【发布时间】:2016-08-05 11:33:11
【问题描述】:
我有父模型person。视图模型有一个 person 的可观察数组。要编辑/添加一个人,我有一个 jQuery UI 对话框(确定/取消)。
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 对话框。使用foreach 绑定在people 可观察数组上生成一个表。
现在,当我尝试修改记录时,我会在单击该行时调用以下函数。
function rowSelected(item,event){
viewModel.personEntry(item);
openDialog();
}
这将在 jQuery UI 对话框中打开包含所选行详细信息的对话框。但是,如果我更改了一个值,然后按对话框上的取消,表格仍然会被修改为一个不应该发生的新值。有什么想法吗?
如果需要,我可以放一个示例代码。
【问题讨论】:
-
你绝对应该使用knockout-jqueryui,它为各种标准的jQuery UI小部件提供了良好的敲除绑定。在您做任何其他事情之前,请查看the sample for the dialog widget。摆脱您的自定义点击事件处理程序,并尝试让它以这种方式工作。如果您的问题仍然存在,请将示例代码添加到您的问题中。
-
我已经通过创建 person 对象的新实例并为其分配项目中的值来解决这个问题。然后我将这个新的人对象传递给 personEntry 项。这解决了它
-
为了获得好的业力,您可以发布您的工作解决方案并附上一小段解释作为答案。也许其他人将来会发现它很有用。
标签: knockout.js jquery-ui-dialog