Javascript 如何呈现包含固定列和动态列的表

Javascript 如何呈现包含固定列和动态列的表,javascript,knockout.js,Javascript,Knockout.js,我想得到一个包含以下列的表: [姓名] [俱乐部] [附件1] [C2] [动态C3] 等等 我试过这个: aa @节脚本{ var vm={ id:1, 名称:'H21', 无线电:['2km'、'4km'、'mål'], 参赛者:高([ {名称:'Mikael Eliasson',俱乐部:'Göteborg Majorna OK',电台:ko.observearray([{},{},{},{}]), {姓名:'Ola Martner',俱乐部:'Göteborg Majorna OK'

我想得到一个包含以下列的表:

  • [姓名]
  • [俱乐部]
  • [附件1]
  • [C2]
  • [动态C3]
  • 等等
我试过这个:


aa
@节脚本{
var vm={
id:1,
名称:'H21',
无线电:['2km'、'4km'、'mål'],
参赛者:高([
{名称:'Mikael Eliasson',俱乐部:'Göteborg Majorna OK',电台:ko.observearray([{},{},{},{}]),
{姓名:'Ola Martner',俱乐部:'Göteborg Majorna OK',电台:ko.observearray([{},{},{},{}])}
])
};
ko.应用绑定(vm);
}

我的问题是,
colTmpl
中的tds不是databoud,它是空的,放在第三列后面,带有文本“aa”。请参见此。

这是因为
的内容正在被您指定的模板替换

如果您改为:

<script id="rowTmpl" type="text/html">
<tr> 
    <td data-bind="text: name"></td>
    <td data-bind="text: club"></td>
    <td data-bind="template: { name: 'colTmpl', foreach: radios }" ></td>
</tr>
</script>
<script id="colTmpl" type="text/html">
    <span> . aa . </span>
</script>

. aa。
它将呈现。

如果您正在使用(您的小提琴正在引用最新版本),则可以执行以下操作:

<table>
    <tbody data-bind="foreach: runners">
        <tr>
            <td data-bind="text: name"></td>
            <td data-bind="text: club"></td>
            <!-- ko foreach: radios-->
            <td>aa</td>
            <!-- /ko -->
        </tr>
    </tbody>
</table>

aa
此处示例:


如果您需要在1.3之前使用jQuery模板执行此操作,那么您需要通过将数组中的第一项传递到模板中,并执行
{{If}}
检查您是否在第一个收音机上并渲染两个单元格。jQuery模板中的另一个选项是在动态单元格周围使用
{{each}
,而不是在父级上使用模板绑定的
foreach
选项。如果列经常动态更改,则会损失一些效率。如果有必要,我可以提供这两个选项的示例。

这是我从1.3中还没有学到的东西,比我想到的要好得多。谢谢!这太棒了,是的,我正在使用1.3测试版。