在内部dom元素渲染后调用的knockout js自定义绑定

时间:2013-07-05 15:33:24

标签: knockout.js

我不确定我是否会以完全错误的方式解决这个问题!但我希望能够在元素中的所有代码执行完毕后调用元素上的自定义绑定。

我尝试了很多方法:模板和if绑定与后缀,以及自定义绑定,但由于元素中的内容使用foreach我尝试过的所有绑定调用我的方法之前foreach将渲染的dom元素已经运行。

我能想到的唯一选择是延迟我的方法调用一小段时间,但这看起来有点hacky。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

我不知道您的具体情况,但除了延迟(setTimeout)您的代码外,还有几种方法可以解决它。

一种选择是在自定义绑定中使用ko.applyBindingsToDescendants(context, element)。这将强制运行此元素的子元素上的所有绑定。然后,您可以继续执行要运行的代码。您可能希望将自定义绑定放在具有foreach

的元素的容器上

如果您正在处理相同的元素,另一个选择是让您的自定义绑定也处理foreach。在这种情况下,您可以在元素上调用ko.applyBindingsToNode(element, { foreach: someItems }, context),然后继续执行代码。