我从表中使用MVC 4和knockout.js库版本2.1.0来显示从服务器检索的大量文件的以下摘录。
<tr data-bind="foreach: files, visible: (files() && files().length > 0)">
<td data-bind="text: UploadPath" />
<td data-bind="text: FileName" />
</tr>
正在正确检索数据,但是foreach正在重复表中的TD元素而不是TR。因此,如果有100个文件,则表中将有200列显示给用户。如何让TR元素重复foreach文件?
答案 0 :(得分:24)
只需将“foreach”绑定放在下一个(外部)元素中:
<table data-bind="foreach: files, ...">
<tr>
...
您还可以使用虚拟元素:
<!-- ko foreach: files -->
<tr>
<td>
...
</tr>
<!-- /ko -->
答案 1 :(得分:1)
我遇到了一件奇怪的事情:
我试图使用无容器绑定来重复多个表行。 KO抱怨它无法找到关闭/ ko标签。
我在无容器绑定上面定义了一个表头。如果我将其更改为标准表行,一切都按预期工作(除了我的标题没有所需的样式,但我覆盖它)。
希望这可以帮助其他人努力解决这个问题 - 这只是一种解决方法而不是解决方法。