如何在knockout.js中有条件地通知特定用户

Ale*_*kyi 1 knockout.js

我有一个可观察的,我使用subscribe()方法附加订阅者.如何在更改可观察时有条件地使该订阅者得到通知?

有意思,有些情况下,当改变可观察的时候,我需要调用这个用户,但也没有.

谢谢

sro*_*oes 5

就像Patrick Steele所说的那样,当你改变一个observable的值时总会调用subscribe.如果您不想通知特定用户,则应检查用户的状况.

如果您想在不通知任何订阅者的情况下更新observable,您可以查看Change observable但不要通知knockout.js中的订阅者 ; 在这里,您将找到一个可观察的扩展,允许以下内容:

this.name.sneakyUpdate("Ted");
Run Code Online (Sandbox Code Playgroud)

另一种解决方案是创建一个包含您要检查的条件的计算,然后订阅该计算的条件.例如,如果您只想在可观察值高于5时通知订户,则可以执行以下操作:

self.myObservableIsHigherThan5 = ko.computed(function() {
    return self.yourObservable() > 5;
};
self.myObservableIsHigherThan5.subscribe(function() {
    ...
});
Run Code Online (Sandbox Code Playgroud)