可观察到通知新订户其当前值

时间:2014-05-31 15:30:31

标签: knockout.js

我想知道当前(从KO 3.1开始)推荐的方法来实现/扩展一个可以通知新订阅者其当前值的observable?

是的,我知道我可以调用observable.valueHasMutated,但这不是这个问题的重点: - )

1 个答案:

答案 0 :(得分:3)

您可以使用扩展程序来实现此目的,该扩展程序将覆盖订阅功能以通知订阅者:

ko.extenders.notifyOnSubscribe = function(obs) {
    obs.originalSubscribe = obs.subscribe;
    obs.subscribe = function (callback, target, ev) {
        callback(obs.peek());
        return obs.originalSubscribe(callback, target, ev);
    }
    return obs;
};

您可以使用以下 jsFiddle

进行测试