Knockout.js 交易淘汰

Knockout.js 交易淘汰,knockout.js,durandal,Knockout.js,Durandal,敲除(KO)绑定会立即更新视图模型。这对于编辑对话框来说不是很好;我想在“确定”和“取消”按钮上设置提交和回滚行为 我可以想出几种方法来解决这个问题,但我不太可能是第一个面对这个特殊问题的人,那么传统的解决方案是什么呢 你不能这么做 $.extend(buffer, this); app.showDialog(buffer).then(function () { //if ok clicked then $.extend(this, buffer); }); 因为复制的可观察字段引用相同的

敲除(KO)绑定会立即更新视图模型。这对于编辑对话框来说不是很好;我想在“确定”和“取消”按钮上设置提交和回滚行为

我可以想出几种方法来解决这个问题,但我不太可能是第一个面对这个特殊问题的人,那么传统的解决方案是什么呢

你不能这么做

$.extend(buffer, this);
app.showDialog(buffer).then(function () {
  //if ok clicked then $.extend(this, buffer);
});

因为复制的可观察字段引用相同的可观察实例,所以它是浅拷贝。您必须逐个成员转换为文字。

这可能是您正在寻找的插件:


你能为这个做个提琴样品吗?我想我能做点什么;这个问题并不特定于我遇到它的环境,所以我想我可能可以绕过其中一个KO样本。高度相关:@nemesv-这非常接近(工作)解决方案,因此我提出了,如果你提供它作为答案,你就会得到分数。这正是我所寻找的。他甚至调用了commit和rollback方法!