0

我想要一些像下面这样的 HTML:

<table>
    <tbody>
        <tr data-bind="foreach: foo">
            <td>some header</td>
            <td data-bind="value: bar"></td>
        </tr>
    </tbody>
</table>

foreach我想要由 Knockout绑定生成的重复单元格。但是,当我有一个我不想重复的标题单元格时,我怎么能做到这一点?绑定后所需的输出类似于:

<table>
    <tbody>
        <tr>
            <td>some header</td>
            <td>fred</td>
            <td>wilma</td>
            <td>barney</td>
            <td>bam-bam</td>
        </tr>
    </tbody>
</table>

同样的问题也适用于标题行。如果foreach绑定在<tr>元素上,我如何告诉 Knockout 不要重复第一行或单元格?

4

2 回答 2

3

您可以使用无容器版本的绑定(请参阅文档:使用 foreach without a container element 部分)

<table>
    <tbody>
        <tr>
            <td>some header</td>
            <!-- ko foreach: foo -->
                <td data-bind="text: bar"></td>
            <!-- /ko -->
        </tr>
    </tbody>
</table>

演示JSFiddle

因此,如果您想要一个固定的标题行,可以使用相同的技术:

<table>
    <tbody>
        <tr>
            <td>some header</td>
        </tr>
        <!-- ko foreach: foo -->
            <tr>
                <td data-bind="text: bar"></td>
            </tr>
        <!-- /ko -->   
    </tbody>
</table>
于 2013-07-29T19:11:13.750 回答
2

你可以用这个

<table>
    <tbody>
        <tr>
            <td>Some header</td>
            <!-- ko foreach: foo -->
            <td data-bind="value: bar"></td>
            <!-- /ko -->
        </tr>
    </tbody>
</table>

重复一遍tr,您可以使用相同的决定,但最好使用 html 可能性

<table>
    <thead>
        <tr>
            <td> Header </td>
        </tr>
    </thead>
    <tbody>
        <tr data-bind="foreach: foo">
            <td data-bind="text: bar"></td>
        </tr>
    </tbody>
</table>
于 2013-07-29T19:11:59.340 回答