1

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

<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/),所以这显然是另一个问题。任何想法我还能如何解决?

4

1 回答 1

1

正如您所做的那样,“流绑定控制”(即在您的 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 及更高版本,但显然生成的标记比您当前尝试的方式多得多。

于 2012-06-26T09:53:00.990 回答