KnockoutJS动画过渡

时间:2014-04-03 04:54:36

标签: javascript jquery knockout.js

有谁可以解释为什么knockoutjs网站here中的动画转换示例使用模板绑定?该示例使用此:

 <div data-bind='template: { foreach: planetsToShow,
                            beforeRemove: hidePlanetElement,
                            afterAdd: showPlanetElement }'>
    <div data-bind='attr: { "class": "planet " + type }, text: name'> </div>
</div>

但以下情况也是如此:

 <div data-bind='foreach: {data: planetsToShow,
                            beforeRemove: hidePlanetElement,
                            afterAdd: showPlanetElement}'>
    <div data-bind='attr: { "class": "planet " + type }, text: name'> </div>
</div>

这是他们原来的fiddle。这是我更新的fiddle。模板绑定的使用似乎是无关紧要的。想法?

1 个答案:

答案 0 :(得分:1)

示例使用template绑定没有特殊原因。

top of the page上甚至提到:

  

使用模板/ foreach绑定时,您可以提供afterAdd和beforeRemove回调。

因此,使用foreach绑定或template绑定&#34; foreach模式&#34;无关紧要,因为internally foreach绑定只需委托回template绑定。

所以他们基本上只使用不同的语法做同样的事情,但如果你直接使用template绑定你有更多的选择:

主要区别在于,当使用foreach绑定时,您不能使用命名模板,您必须使用内联模板,但在template绑定中您可以指定任何模板甚至动态更改它。 / p>