有没有办法在淘汰赛中使用foreach data-bind查找最后一次迭代?
我的问题是,我正在迭代一个项目列表,并希望打印所有分隔的项目 一条线。
我不想为该数组的最后一项绘制一行(hr)。
答案 0 :(得分:8)
在foreach中,您可以绑定一个名为$index
的特殊上下文变量(observable)。因此,您可以绑定类似visible: $index() < $parent.items().length - 1
的内容。
答案 1 :(得分:6)
您可以检查是否显示第一个元素。
<div data-bind="foreach: items">
<hr data-bind="visible : $index()!=0" />
<span data-bind="text: $data"></span>
</div>
或者正如RP Niemeyer所说,你可以省略最后一小时:
<div data-bind="foreach: items">
<span data-bind="text: $data"></span>
<hr data-bind="visible : $index() != ($parent.length-1)" />
// notice the hr is after the item.
</div>
答案 2 :(得分:3)
使用CSS也许您可以使用last-child
,尝试:
hr:last-child {
display:none;
}
如果您可以更具体地添加父容器的id
。
答案 3 :(得分:0)
您可以使用visible: $index() < list().length
或类似内容吗?