在knockout js中找到foreach data-bind的最后一次迭代

时间:2014-01-27 14:32:22

标签: html css knockout.js foreach

有没有办法在淘汰赛中使用foreach data-bind查找最后一次迭代?

我的问题是,我正在迭代一个项目列表,并希望打印所有分隔的项目 一条线。

我不想为该数组的最后一项绘制一行(hr)。

4 个答案:

答案 0 :(得分:8)

在foreach中,您可以绑定一个名为$index的特殊上下文变量(observable)。因此,您可以绑定类似visible: $index() < $parent.items().length - 1的内容。

样品: http://jsfiddle.net/rniemeyer/M55qh/

答案 1 :(得分:6)

您可以检查是否显示第一个元素。

<div data-bind="foreach: items">
   <hr data-bind="visible : $index()!=0" /> 
   <span data-bind="text: $data"></span>
</div>

See fiddle

或者正如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或类似内容吗?

http://jsfiddle.net/x2aa7/