KnockoutJS中的模板,空字符串不呈现



我有一个问题,使用KnockoutJS渲染二维数组作为一个表。我已经创建了一个demo,但这是相关的模板代码:

<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,并决定它不应该被渲染。

你可以在我的小提琴上看到。我希望它呈现为

<>之前1 - 2 -- 4 -之前

而不是我看到的:

<>之前1 - 2 -4 -之前

我有一个解决办法通过改变我的数据,所以空字符串被一个空格取代,但希望有人可能有一个更好的建议或理解的问题。谢谢。

Knockout在将每个项通过jQuery Templates插件发送之前将其放入自己的数组中,这样它就不会试图打开本身就是数组的项。

似乎jQuery模板不渲染数组项为空/null/undefined

我认为你的选择是:

  • do what you did(将item替换为" ")
  • 删除最内部的模板,并在数组上做一个{{each}}
  • 映射你的数组使用对象[{value: 1}, {value: 2}, {value: ""}, {value: 4}]

相关内容

  • 没有找到相关文章