防止在特定情况下设置可观察量

Mat*_*don 3 javascript overloading knockout.js

是否可以在可观察量上重载setter以防止在某些情况下设置其值?假设在设置observable之前将触发的函数,如下所示:

function(value) {
    if (value === 'ok') {
        proceed; //set value of observable
    } else {
        break; //do not set observable
    }
}
Run Code Online (Sandbox Code Playgroud)

我想它可以通过使用订阅来实现,但我不完全清楚如何.

不是说我正在使用淘汰赛3.0.

man*_*nji 6

您可以使用可写的计算可观测readwrite功能:

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
    }
});
Run Code Online (Sandbox Code Playgroud)