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

如何在knockout.js中有条件地通知特定订户,knockout.js,Knockout.js,我有一个可观察对象,我使用subscribe()方法将订阅者附加到它。 我如何有条件地使该订阅者在改变可观察性时得到通知 也就是说,在某些情况下,当改变可观测值时,我需要调用该订户,但也不需要 谢谢就像Patrick Steele说的,当你改变一个可观测值时,总是调用subscribe。如果不想通知特定订户,则应检查订户中的条件 如果您想在不通知任何订阅者的情况下更新一个可观察对象,您可以查看;在这里,您将发现一个可观察的扩展,它允许以下内容: this.name.sneakyUpdate("T

我有一个可观察对象,我使用subscribe()方法将订阅者附加到它。 我如何有条件地使该订阅者在改变可观察性时得到通知

也就是说,在某些情况下,当改变可观测值时,我需要调用该订户,但也不需要


谢谢

就像Patrick Steele说的,当你改变一个可观测值时,总是调用subscribe。如果不想通知特定订户,则应检查订户中的条件

如果您想在不通知任何订阅者的情况下更新一个可观察对象,您可以查看;在这里,您将发现一个可观察的扩展,它允许以下内容:

this.name.sneakyUpdate("Ted");
self.myObservableIsHigherThan5 = ko.computed(function() {
    return self.yourObservable() > 5;
};
self.myObservableIsHigherThan5.subscribe(function() {
    ...
});
另一种解决方案是创建一个包含要检查的条件的computed,然后订阅该computed。例如,如果您只想在可观测值高于5时通知订户,则可以执行以下操作:

this.name.sneakyUpdate("Ted");
self.myObservableIsHigherThan5 = ko.computed(function() {
    return self.yourObservable() > 5;
};
self.myObservableIsHigherThan5.subscribe(function() {
    ...
});

就像Patrick Steele所说的,当你改变一个可观测值时,总是调用subscribe。如果不想通知特定订户,则应检查订户中的条件

如果您想在不通知任何订阅者的情况下更新一个可观察对象,您可以查看;在这里,您将发现一个可观察的扩展,它允许以下内容:

this.name.sneakyUpdate("Ted");
self.myObservableIsHigherThan5 = ko.computed(function() {
    return self.yourObservable() > 5;
};
self.myObservableIsHigherThan5.subscribe(function() {
    ...
});
另一种解决方案是创建一个包含要检查的条件的computed,然后订阅该computed。例如,如果您只想在可观测值高于5时通知订户,则可以执行以下操作:

this.name.sneakyUpdate("Ted");
self.myObservableIsHigherThan5 = ko.computed(function() {
    return self.yourObservable() > 5;
};
self.myObservableIsHigherThan5.subscribe(function() {
    ...
});

订阅始终被调用。只要把你的条件逻辑放在你的回调中,决定你是否需要做任何事情。订阅总是被调用的。只要把你的条件逻辑放在你的回调中,决定你是否需要做任何事情。