我不确定我是否以完全错误的方式处理这件事!但是,我希望能够在元素中的所有代码都执行完毕后,对其调用自定义绑定。
我尝试了很多方法:带有afterrender的模板和if绑定,以及自定义绑定,但由于元素中的内容使用foreach,我尝试调用的所有绑定都会在foreach将要渲染的dom元素运行之前调用我的方法。
我能想到的唯一选择是将我的方法调用延迟一秒钟,但这似乎有点棘手。
任何帮助都将不胜感激。
我不知道你的确切场景,但除了延迟(setTimeout
)代码之外,还有几种方法可以解决它。
一种选择是在自定义绑定中使用ko.applyBindingsToDescendants(context, element)
。这将强制运行此元素的子级上的所有绑定。然后,您可以继续执行想要执行的程式码。您可能希望将自定义绑定放在具有foreach
的元素的容器上。
如果您正在处理相同的元素,另一种选择是让您的自定义绑定也处理foreach
。在这种情况下,可以对元素调用ko.applyBindingsToNode(element, { foreach: someItems }, context)
,然后继续执行代码。