繁体   English   中英

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

[英]Find the last iteration of foreach data-bind in knockout js

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

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

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

在foreach中,您可以绑定一个名为$index的特殊上下文变量(observable)。 所以,你可以绑定像visible: $index() < $parent.items().length - 1这样的东西visible: $index() < $parent.items().length - 1

示例: http//jsfiddle.net/rniemeyer/M55qh/

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

<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>

使用CSS也许你可以使用last-child ,尝试:

hr:last-child {
  display:none;
}

如果您可以更具体地添加父容器的id

你可以使用visible: $index() < list().length或类似的东西?

http://jsfiddle.net/x2aa7/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM