我正在使用带有受保护的observable的knockoutjs,并且我遇到了复选框的问题。可以找到受保护的可观察量的一个实现here但是我看到的有几个非常相似。
可以找到演示我的问题的jsFiddle here。这是小提琴的一部分。
var ViewModel = function() {
var self = this;
self.protectedBool = ko.protectedObservable(true);
self.commit = function(){
ko.commitProtectedObservables(self);
};
self.rollback = function() {
ko.rollbackProtectedObservables(self);
};
};
$(function() {
ko.applyBindings(new ViewModel());
});
要复制,请执行以下操作:
在protectedObservable定义中计算的observable中的“write”事件在第二次更改复选框时会触发 not ,因此当提交值时,它提交的值不正确。
另请注意,protectedObservable非常适合字符串。任何指导都将不胜感激。
答案 0 :(得分:11)
protectedObservable
的实施非常陈旧。它适用于旧版本的KO(< 2)。
对于新的KO版本,请参阅同一作者(Ryan Niemeyer)实施的编辑器模式 - http://www.knockmeout.net/2013/01/simple-editor-pattern-knockout-js.html