我正在尝试使用 Knockout 的 afterRender
绑定(bind),但我引用的函数从未被调用。
我有嵌套的 View 模型:
vmConcepts
和 vmConcept
,其中 vmConcepts.Concepts = vmConcept 对象数组。
vmConcept
(内部模型)有一个函数 self.Rendered = function (elmnt) {...
我将 vmConcepts(外部模型)绑定(bind)到以下标记(您可以看到这调用了嵌套模板):
<ul>
<!-- ko template: { name: 'concept-template', foreach: { data: Concepts, afterRender: Rendered } } --><!-- /ko -->
</ul>
我的理解是,应该为传递给 concept-template
模板的每个 vmConcept 对象(在 vmConcepts.Concepts 中)调用此 afterRender
绑定(bind),但事实并非如此发生。我什至将相同的 Rendered
函数添加到 vmConcepts
并且也没有被命中。
我已经将其作为 data-bind
绑定(bind)和虚拟绑定(bind)进行了尝试。
我错过了什么?
最佳答案
你的绑定(bind)搞砸了。 foreach 内部模板与 foreach 绑定(bind)不同。在模板上呈现的 after 将在每个 child 之后触发。
试试这个
<ul>
<!-- ko template: {
name: 'concept-template',
foreach: Concepts,
afterRender: Rendered
} --><!-- /ko -->
</ul>
我这里有一个工作示例: http://jsfiddle.net/4t94G/1/
关于javascript - knockout : afterRender not being called in a foreach template binding,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24658543/