在我的HTML中,我可以定义这些knockout foreach绑定:
<!-- ko foreach: customer -->
<div data-bind="text: id" />
<!-- /ko -->
对抗
<div data-bind="foreach: customer">
<div data-bind="text: id" />
</div>
这两种方法之间有什么差异?
在我的HTML中,我可以定义这些knockout foreach绑定:
<!-- ko foreach: customer -->
<div data-bind="text: id" />
<!-- /ko -->
对抗
<div data-bind="foreach: customer">
<div data-bind="text: id" />
</div>
这两种方法之间有什么差异?
当绑定部分存在父子关系时,如ul和li之间,请使用本地绑定。
如果您的绑定部分没有父子关系,请使用注释语法进行无容器绑定。
在您的示例中,您使用第一个代码块,因为您不想绑定到父子结构。你只想将你的客户数据绑定到一个div上,你不应该创建一个父div并foreach
遍历客户然后将另一个div添加到父div内。这超出了你所想要的。
很好地使用了无容器绑定
<!-- ko foreach: customer -->
<section>
<p data-bind="text: customer.name"></p>
<p data-bind="text: customer.orderDate"></p>
</section>
<!-- /ko -->
然而,如果你有一个有序列表,你应该使用本地绑定,因为它是最合理的。
本地
<ol data-bind="foreach: customer">
<li data-bind="text: customer.name"></li>
</ol>
无容器
<ol>
<!-- ko foreach: customer -->
<li data-bind="text: customer.name"></li>
<!-- /ko -->
</ol>
第二个例子看起来很傻,你正在为本应不复杂的事情增加更多复杂性。