knockout.js嵌套循环索引



我与foreach和内部foreach环有敲除结合。我需要的是为每个偶数行应用替代行css规则,无论它是子行还是父行。如果我使用$index如下,那么最后一个子行和第一个父行可能应用了相同的样式。

<tbody data-bind="foreach: items">
    <tr data-bind="css: { alt: $index()%2 }">
        <td colspan="2">
            <a data-bind="attr: { 'href': '@Url.Action("View", "MyController")?itemId=' + Id() }"><span data-bind="text: name"></span></a>
        </td>
    </tr>
        <!-- ko foreach: subItems -->
        <tr data-bind="css: { alt: ($index()+$parentContext.$index()+1)%2 }, visible: $parent.childrenVisible()">
            <td></td>
            <td>
                <a data-bind="attr: { 'href': '@Url.Action("View", "MyController")?itemId=' + Id() }"><span data-bind="text: name"></span></a>
            </td>
        </tr>
        <!-- /ko -->                
</tbody>

问题:是否有可能在淘汰中使用计数器,并在父循环和子循环的每次迭代中递增?否则,在这种情况下,通常的技巧是什么?

尽可能在样式表中处理样式问题要好得多,而不是求助于代码。这是一个你可以这样做的例子,至少在CSS3中是这样。通过使用:nth-child,您可以应用替代行样式:

tr {
  background-color: #ff0000;
}
tr:nth-child(2n+1) {
  background-color: #00ff00;
}

最新更新