使用 knockout.js (valueUpdate) 在输入更改时调用函数

Call function on input change with knockout.js (valueUpdate)

我正在尝试在我的输入值更新时调用一个函数。 该函数将验证输入值并将标志设置为 true 或 false,该标志将在 DOM.

中的多个元素中使用

我一直在尝试建议的解决方案 here:

<input data-bind="event: { change: value_changed }, value: saved_value, valueUpdate: 'afterkeydown'" />

但在 afterKeyDown 上似乎不起作用。正如您在此处看到的那样,它仅在 unfocus 上调用函数: http://jsfiddle.net/imac/hY5T2/142/

我做错了什么?

这是您的 JSFiddle

的更新
<input data-bind="value: demo, valueUpdate: 'afterkeydown'" />


var viewModel = function () {
    var self = this;

    self.demo = ko.observable('');
    self.myFunction = function(){
        alert("fired");
    }
}

var VM = new viewModel();
ko.applyBindings(VM);

VM.demo.subscribe(function(){
    VM.myFunction();
});

我希望这就是你想要的??

谢谢

编辑:

没有订阅者。 JSFiddle without subscriber

var viewModel = function () {

    var self = this;

    self.demo = ko.observable('');

    self.myFunction = function () {
        alert("fired");
    }

    self.worker = ko.computed(function () {
        if (self.demo()) self.myFunction();
    }, this);
}

var VM = new viewModel();
ko.applyBindings(VM);