Events 哪些活动可以使用Knockout';s可观测的订阅函数
在淘汰文档的一节中,有一个对Events 哪些活动可以使用Knockout';s可观测的订阅函数,events,knockout.js,subscriptions,Events,Knockout.js,Subscriptions,在淘汰文档的一节中,有一个对subscribe函数的event参数的引用,但该页上给出的仅有两个示例是change和beforeChange 举个例子,我尝试将“focus”作为第三个参数传入,但没有成功。我并不感到惊讶,因为“focus”是一个DOM元素的事件,而不是一个淘汰的可观察事件,但是理论上它可以为绑定到该可观察事件的所有元素设置一个focus事件订阅 是否有一个可以使用Knockout的可观察的手动订阅的所有事件的列表。订阅功能?在您的情况下使用是有意义的 因为只有两种方法可以通知订
subscribe
函数的event
参数的引用,但该页上给出的仅有两个示例是change
和beforeChange
举个例子,我尝试将“focus”
作为第三个参数传入,但没有成功。我并不感到惊讶,因为“focus”是一个DOM元素的事件,而不是一个淘汰的可观察事件,但是理论上它可以为绑定到该可观察事件的所有元素设置一个focus事件订阅
是否有一个可以使用Knockout的
可观察的手动订阅的所有事件的列表。订阅功能?在您的情况下使用是有意义的
因为只有两种方法可以通知订阅者可观测变量:beforeChange
和change
在knockoutJs代码中,有一个简单的if块链,用于检查是否指定了事件,以及事件是否等于更改前的。这基本上就是所有的逻辑,所以没有其他事件触发
实现此逻辑的部件表单knockoutJS:
self["notifySubscribers"] = function(value, event) {
if (!event || event === defaultEvent) {
self._rateLimitedChange(value);
} else if (event === beforeChange) {
self._rateLimitedBeforeChange(value);
} else {
self._origNotifySubscribers(value, event);
}
};
仅有两个内置选项是change
和beforeChange
。这些是可观测到的唯一“事件”。您可能需要事件
绑定,因为您想设置“焦点”事件…@nemesv感谢您的解释。为什么不把它作为一个答案而不是一个评论?当你说“只有两个内置选项”时,这是否意味着可以通过这种方式在可观察对象上添加额外的自定义事件?如果是这样的话,有没有一个例子可以说明如何做到这一点?谢谢。我不想使用事件绑定,但我更愿意使用上所示的一些技术