2013-12-09 62 views
0

只是想创建我的第一个自定义绑定处理程序自定义绑定处理程序:没有发射

<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()); 

的事情是,当我更新的价值并不触发“更新”。我只在启动时被触发?这里是的jsfiddle链接: http://jsfiddle.net/dingen2010/c43hu/2/

回答

2

您需要使用吸气的价值存取订阅价值变动 -

http://jsfiddle.net/c43hu/3/

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