3

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

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

我能想到的唯一选择是将我的方法调用延迟几分之一秒,但这似乎有点hacky。

任何帮助将非常感激。

4

1 回答 1

2

setTimeout我不知道您的确切情况,但是除了延迟( )您的代码之外,还有几种方法可以接近它。

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

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

于 2013-07-05T16:06:41.740 回答