Eli*_*eth 52 javascript templating knockout.js knockout-templating
在我的HTML中,我可以定义这些淘汰的foreach绑定:
<!-- ko foreach: customer -->
<div data-bind="text: id" />
<!-- /ko -->
Run Code Online (Sandbox Code Playgroud)
VS
<div data-bind="foreach: customer">
<div data-bind="text: id" />
</div>
Run Code Online (Sandbox Code Playgroud)
这两种方法之间的差异在哪里?
Dav*_*ast 65
当绑定部分中存在父子关系时,使用本机绑定,如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 -->
Run Code Online (Sandbox Code Playgroud)
但是,如果您有一个有序列表,则应使用本机绑定,因为它才有意义.
本地人
<ol data-bind="foreach: customer">
<li data-bind="text: customer.name"></li>
</ol>
Run Code Online (Sandbox Code Playgroud)
无容器
<ol>
<!-- ko foreach: customer -->
<li data-bind="text: customer.name"></li>
<!-- /ko -->
</ol>
Run Code Online (Sandbox Code Playgroud)
第二个例子看起来很傻.你为不应该复杂的东西增加了更多的复杂性.