【发布时间】:2015-11-19 22:31:03
【问题描述】:
我试图在淘汰赛中呈现一张桌子。该代码有效,但随着行数和列数的增加,渲染时间变得非常长。罪魁祸首似乎是通知订阅者并实际执行绑定。我想知道是否有一种方法可以以一种不会导致淘汰赛做这么多事件的方式呈现表格。该表实际上没有交互。纯粹是为了显示数据。我希望在不需要引入另一个模板引擎的情况下实现这一点,只需使用带有 data-bind 属性的 Knockout.js 即可,但我已经尝试过,但似乎没有什么令人满意的。我有两个可观察的数组,一个用于标题,一个用于数据。数据数组是一个数组数组,因为我必须单独构建每一行。
<table>
<thead>
<tr>
<!--ko foreach: headers -->
<th data-bind="{'text': displayName}"></th>
<!-- /ko -->
</tr>
</thead>
<tbody data-bind="foreach: row">
<tr class="form_row">
<!-- ko foreach: question -->
<!-- ko if: Type === "image" -->
<td>
<a data-bind="attr: {'href': $data.Value, 'target': '_blank'}">
<img class="thumbnail-img" data-bind=" attr: {'src': $data.Value}" />
</a>
</td>
<!-- /ko -->
<!-- ko if: Type !== "image" -->
<td data-bind="{'text': Value}"></td>
<!-- /ko -->
<!-- /ko -->
</tr>
</tbody>
</table>
您可以使用这个 JsFiddle 来运行类似于我的示例的内容。 http://jsfiddle.net/LkqTU/27820/
【问题讨论】:
标签: knockout.js