Knockout.js 击出按钮上的自定义绑定

Knockout.js 击出按钮上的自定义绑定,knockout.js,ko-custom-binding,Knockout.js,Ko Custom Binding,我在创建自定义绑定时遇到一些问题。据我所知,绑定的更新回调应该在每次视图模型更改时触发 我创建了一个小例子 在那里,我把一条带子系在一个钮扣上。绑定的更新只执行一次,然后再也不会执行,即使我更改了可观察对象的数据 我想使用这种方法来实现canExecute绑定。绑定是在计算的可观察对象内部实现的,因此它们根据实际访问的可观察对象/计算对象跟踪依赖关系 因此,这意味着在update函数中,您希望访问传递给它的可观察值,如下所示: ko.bindingHandlers.testBinding

我在创建自定义绑定时遇到一些问题。据我所知,绑定的更新回调应该在每次视图模型更改时触发

我创建了一个小例子

在那里,我把一条带子系在一个钮扣上。绑定的更新只执行一次,然后再也不会执行,即使我更改了可观察对象的数据


我想使用这种方法来实现canExecute绑定。

绑定是在
计算的可观察对象内部实现的,因此它们根据实际访问的可观察对象/计算对象跟踪依赖关系

因此,这意味着在
update
函数中,您希望访问传递给它的可观察值,如下所示:

   ko.bindingHandlers.testBinding = {   
      update: function(element, valueAccessor) {
         //dependency is created here
         var value = ko.utils.unwrapObservable(valueAccessor());
         alert("update " + value);
      }
   }

更新的fiddle:

您好,感谢您的解释,我错过了创建反依赖的地方。
   ko.bindingHandlers.testBinding = {   
      update: function(element, valueAccessor) {
         //dependency is created here
         var value = ko.utils.unwrapObservable(valueAccessor());
         alert("update " + value);
      }
   }