简体   繁体   English

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

[英]Prevent an observable from being set in specific cases

Is it possible to overload the setter on observable to prevent setting its value in some cases? 是否可以在可观察量上重载setter以防止在某些情况下设置其值? Say with a function which will trigger before setting observable, like this: 假设在设置observable之前将触发的函数,如下所示:

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

I guess that it can be achieved by using subscriptions, but I am not fully aware how. 我想它可以通过使用订阅来实现,但我不完全清楚如何。

Not that I'm using knockout 3.0. 不是说我正在使用淘汰赛3.0。

You can use writable computed observable with read and write functions: 您可以使用可写的计算观察到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
    }
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM