在内部dom元素呈现后调用的knocket-js自定义绑定



我不确定我是否以完全错误的方式处理这件事!但是,我希望能够在元素中的所有代码都执行完毕后,对其调用自定义绑定。

我尝试了很多方法:带有afterrender的模板和if绑定,以及自定义绑定,但由于元素中的内容使用foreach,我尝试调用的所有绑定都会在foreach将要渲染的dom元素运行之前调用我的方法。

我能想到的唯一选择是将我的方法调用延迟一秒钟,但这似乎有点棘手。

任何帮助都将不胜感激。

我不知道你的确切场景,但除了延迟(setTimeout)代码之外,还有几种方法可以解决它。

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

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

最新更新