有谁可以解释为什么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>
答案 0 :(得分:1)
示例使用template
绑定没有特殊原因。
在top of the page上甚至提到:
使用模板/ foreach绑定时,您可以提供afterAdd和beforeRemove回调。
因此,使用foreach
绑定或template
绑定&#34; foreach模式&#34;无关紧要,因为internally foreach
绑定只需委托回template
绑定。
所以他们基本上只使用不同的语法做同样的事情,但如果你直接使用template
绑定你有更多的选择:
主要区别在于,当使用foreach
绑定时,您不能使用命名模板,您必须使用内联模板,但在template
绑定中您可以指定任何模板甚至动态更改它。 / p>