我正在尝试使用Knockout的afterRender
绑定,但是我引用的函数永远不会被调用。
我有嵌套的视图模型:
vmConcepts
和vmConcept
,其中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
绑定和虚拟绑定。
我错过了什么?
答案 0 :(得分:2)
你的绑定搞砸了。模板中的 foreach 与 foreach 绑定不同。在模板上渲染之后将在每个孩子之后触发。
试试这个
<ul>
<!-- ko template: {
name: 'concept-template',
foreach: Concepts,
afterRender: Rendered
} --><!-- /ko -->
</ul>
我在这里有一个有效的例子: http://jsfiddle.net/4t94G/1/