ko.obserable忽略更改,如果在编辑时取消选中

时间:2015-11-12 09:52:55

标签: knockout.js observable

我对KO很新。但是,如果我是正确的,则会观察到model.firstName的任何更改:

model.firstName = ko.observable(src.firstName)

我的问题是如果有人在我的“编辑”屏幕(模态)上按下取消,我不知道如何恢复原状,例如:

  • 点击修改
  • 清除名字字段
  • 点击取消
  • 点击再次修改
  • 名字字段为空白

编辑是model。我不确定如何重置它?

onCancel: function () {            
            this.show(false);
            // revert back to value provided on load?
            model.firstName(src.firstName);
        },

1 个答案:

答案 0 :(得分:2)

使用protectedObservable:

型号:

curl

HTML:

model.firstName = ko.protectedObservable(src.firstName);
model.save = function() {
   model.firstName.commit();
}
model.cancel = function() {
   model.firstName.reset();
}

扩展:

<input data-bind="value: firstName" />
<button data-bind="click: cancel">Cancel</button>
<button data-bind="click: save">Save</button>

有关详细信息,请阅读以下文章: KnockMeOut