是否可以在observable上重载setter以防止在某些情况下设置其值?比较一个在设置observable之前会触发的函数,如下所示:
function(value) {
if (value === 'ok') {
proceed; //set value of observable
} else {
break; //do not set observable
}
}
我想这可以通过使用订阅来实现,但我不完全清楚如何。
不是说我正在使用淘汰赛3.0。
答案 0 :(得分:6)
您可以将writable computed observable与read
和write
函数结合使用:
var _prop = ko.observable();
var prop = ko.computed({
read: function() {
return _prop();
},
write: function(value ) {
if (value === 'ok') {
_prop(value); //set value of observable
}
// else do not set observable
}
});