淘汰赛:在foreach模板绑定中没有调用afterRender

时间:2014-07-09 16:01:22

标签: javascript knockout.js

我正在尝试使用Knockout的afterRender绑定,但是我引用的函数永远不会被调用。

我有嵌套的视图模型: vmConceptsvmConcept,其中vmConcepts.Concepts = vmConcept对象的数组。

vmConcept(内部模型)有一个函数self.Rendered = function (elmnt) {...

我将vmConcepts(外部模型)绑定到以下标记(您可以看到它调用嵌套模板):

<ul>
    <!-- ko template: { name: 'concept-template', foreach: { data: Concepts, afterRender: Rendered } } --><!-- /ko -->
</ul>

我的理解是,应该为传递给afterRender模板的每个vmConcept对象(在vmConcepts.Concepts中)调用此concept-template绑定,但这不会发生。我甚至向Rendered添加了相同的vmConcepts函数,但也没有被点击。

我已经尝试过data-bind绑定和虚拟绑定。

我错过了什么?

1 个答案:

答案 0 :(得分:2)

你的绑定搞砸了。模板中的 foreach foreach 绑定不同。在模板上渲染之后将在每个孩子之后触发。

试试这个

<ul>
    <!-- ko template: { 
        name: 'concept-template', 
        foreach: Concepts, 
        afterRender: Rendered 
    } --><!-- /ko -->
</ul>

我在这里有一个有效的例子: http://jsfiddle.net/4t94G/1/