在KnockoutJS 3.1中删除了ko.bindingHandlers.if.update函数?

时间:2014-03-26 11:10:54

标签: javascript jquery knockout.js custom-binding

我写了一个custom binding,其表现与第一个if binding相同,而下一个就是visible binding

ko.bindingHandlers.visibleIf = {
   init: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext)
   {
      // Doing stuff here
      // ...

      return ko.bindingHandlers.if.init.apply(this, arguments);
   },
   update: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext)
   {
       // Doing stuff here
       // ...

       ko.bindingHandlers.if.update.apply(this, arguments);
    }
};

我过去常常包装if.initif.update,并且它在KO 3.0上工作正常,我只是注意到它已在KO 3.1上删除了。

可以在if.update上打包KO 3.1功能吗?或者你有其他建议可以帮助实现这个目标吗?

非常感谢,谢谢。

1 个答案:

答案 0 :(得分:0)

您可以向包装函数添加一个属性,该属性告诉您IF绑定是在之前和/或是否已经渲染其子节点时触发的。然后,您可以执行与以前的更新回调相同的操作。