我使用KnockoutJS将二维数组渲染为表时遇到问题。我创建了demo fiddle,但这是相关的模板代码:
<script type="text/x-jquery-tmpl" id="resultRowTemplate">
<tr data-bind="template: { name: 'resultColumnTemplate', foreach: $data }"></tr>
</script>
<script type="text/x-jquery-tmpl" id="resultColumnTemplate">
<td>-${$data}-</td>
</script>
<table>
<tbody data-bind="template: { name: 'resultRowTemplate', foreach: Results }"></tbody>
</table>
我的问题是,当数据是空字符串时,不会呈现resultColumnTemplate。我猜测内部将空字符串视为null / false并决定不应该呈现它。
您可以在my fiddle中看到这一点。我希望它呈现为
-1- -2- -- -4-
而不是我所看到的:
-1- -2- -4-
我通过更改数据来解决方法,因此空字符串被单个空格替换,但希望有人可能有更好的建议或对问题的理解。感谢。
答案 0 :(得分:1)
Knockout在通过jQuery Templates插件发送之前将每个项目放入其自己的数组中,这样它就不会尝试解包数组本身的项目。
似乎jQuery模板不呈现空/ null /未定义的数组项。
我认为你的选择是:
{{each}}
[{value: 1}, {value: 2}, {value: ""}, {value: 4}]