代码之家  ›  专栏  ›  技术社区  ›  awj

敲除:foreach模板绑定中未调用afterRender

  •  1
  • awj  · 技术社区  · 11 年前

    我想用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>
    

    我的理解是 渲染后 应为传递给 concept-template 模板,但这不会发生。我甚至添加了相同的 Rendered 函数到 vmConcepts(虚拟机概念) 这也不会被击中。

    我已经试过了 data-bind 绑定和作为虚拟绑定。

    我错过了什么?

    1 回复  |  直到 11 年前
        1
  •  2
  •   Thinking Sites    11 年前

    你的绑定搞砸了。这个 前肢 内部模板与 前肢 结合模板上渲染的after将在每个子级之后激发。

    试试这个

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

    我有一个很好的例子: http://jsfiddle.net/4t94G/1/