Knockout.JS:基于可观察的变化触发

gzo*_*ost 22 triggers observable knockout.js

我有一个输入元素绑定到一个淘汰观察:

<input type="text" data-bind="value: myText, valueUpdate: 'keyup'" />
Run Code Online (Sandbox Code Playgroud)

这会更新每个keyup上的observable.我现在想要在值更改时触发其他事件.

以下原则上做到了这一点:

this.myTextTrigger = ko.computed( function () {
    console.log( this.myText() );
}, this );
Run Code Online (Sandbox Code Playgroud)

然而,它似乎有点笨重.它还会在模板的初始实例化时触发,我只想在此之后处理更改.是否存在基于可观察量变化触发事件的官方/更简单的方法?

mez*_*eze 41

使用订阅:

this.myText.subscribe(function (newText) {
   console.log(newText);
});
Run Code Online (Sandbox Code Playgroud)

如果要重用此触发器,可以考虑编写自定义绑定.

  • 手动订阅+1(http://knockoutjs.com/documentation/observables.html#explicitly_subscribing_to_observables) (2认同)