2013-12-09 67 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());