KNOCKOUTJS foreach 不起作用

knockoutjs foreach not working

本文关键字:不起作用 foreach KNOCKOUTJS      更新时间:2023-09-26

我在同一个表中有两段代码。一个看起来像这样:

<tr>
   <th data-bind="text: tableHeaders()[0].title"></th>
   <th data-bind="text: tableHeaders()[1].title"></th>
   <th data-bind="text: tableHeaders()[2].title"></th>
</tr>

另一个看起来像这样:

<tr data-bind="foreach: tableHeaders">
   <th data-bind="text: title"></th>
</tr>

第一个打印正确,而第二个没有打印出任何内容。浏览源代码会发现

<tr data-bind="foreach: tableHeaders"></tr>

我一直无法在 jsfiddle(作品:http://jsfiddle.net/nnjEf/4/)中复制我的问题,所以这显然是另一个问题。任何想法我还能如何进行故障排除?

"流绑定控制"(即在HTML中使用foreach内联)首先在Knockoutjs 2.0(或其beta版本名称中的1.3)中引入。 你的jsfiddle也使用v2.0作为框架。

没有看到您的实际代码就不可能说,但我怀疑您使用的是不支持此功能的较低版本。 如果您使用的是 v1.2,则可能有效的旧方法是使用模板 - 例如

<tr data-bind="template:{name: 'tableHeadersTemplate', foreach: tableHeaders}">
</tr>
<script type="text/html" id="tableHeadersTemplate">    
   <th data-bind="text: title"></th>
</script>

这也适用于 v2.0 及更高版本,但显然生成的标记比您当前尝试的方式要多得多。