ko.bindingHandlers.if.update函数在KnockoutJS 3.1中被移除

ko.bindingHandlers.if.update function was removed in KnockoutJS 3.1?

本文关键字:KnockoutJS if bindingHandlers update 函数 ko      更新时间:2023-09-26

我写了一个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上被删除了。

是否可以在KO 3.1上包装if.update功能?或者你有其他的建议可以帮助实现这一目标?

谢谢。

您可以在包装器函数中添加一个属性,告诉您if绑定是否在之前被触发和/或它是否已经呈现了它的子节点。然后,您可以执行与前一个更新回调完全相同的操作。