Knockout.js 自定义绑定处理程序未启动

Knockout.js 自定义绑定处理程序未启动,knockout.js,knockout-mapping-plugin,ko-custom-binding,Knockout.js,Knockout Mapping Plugin,Ko Custom Binding,正在尝试创建我的第一个自定义绑定处理程序: <input data-bind="value:firstName,valueUpdate:'afterkeydown'" type="text" /> <button data-bind="myhandler: firstName" ></button> ko.bindingHandlers.myhandler = { update: function (element, valueAcc

正在尝试创建我的第一个自定义绑定处理程序:

<input data-bind="value:firstName,valueUpdate:'afterkeydown'" type="text" />
<button data-bind="myhandler: firstName" ></button>

ko.bindingHandlers.myhandler =
    {
        update: function (element, valueAccessor) {
            var value = ko.utils.unwrapObservable(valueAccessor);
            $(element).css("background", "red");
            console.log('update');
        }
    }

var vm = function () {
    this.firstName = ko.observable('bert');
}

ko.applyBindings(new vm());

ko.bindingHandler.myhandler=
{
更新:函数(元素、值访问器){
var值=ko.utils.unwrapObservable(valueAccessor);
$(元素).css(“背景”、“红色”);
console.log('update');
}
}
var vm=函数(){
this.firstName=ko.observable('bert');
}
应用绑定(新vm());
问题是,当我更新值时,它不会触发“更新”。我只在启动时被触发?以下是JSFIDLE链接:

您需要使用值访问器上的getter来订阅值更改-

var value = ko.utils.unwrapObservable(valueAccessor());