Rom*_*las 22 scala playframework-2.0
在玩!1,可以使用以下代码获取循环内的当前索引:
#{list items:myItems, as: 'item'}
<li>Item ${item_index} is ${item}</li>
#{/list}
Run Code Online (Sandbox Code Playgroud)
在Play2中是否有相同的功能?
@for(item <- myItems) {
<li>Item ??? is @item</li>
}
Run Code Online (Sandbox Code Playgroud)
同样的问题_isLast和_isFirst.
ps:这个问题非常相似,但解决方案暗示修改代码返回一个Tuple (item, index)而不仅仅是一个列表item.
bie*_*ior 55
是的,zipWithIndex是内置的功能,好在有使用它更优雅的方式:
@for((item, index) <- myItems.zipWithIndex) {
<li>Item @index is @item</li>
}
Run Code Online (Sandbox Code Playgroud)
索引是从0开始的,所以如果你想从1而不是0开始,只需在当前显示的索引中加1:
<li>Item @{index+1} is @item</li>
Run Code Online (Sandbox Code Playgroud)
PS:在回答你的其他问题-不,有没有隐含的indexes,_isFirst,_isLast性质,反正你可以写简单的斯卡拉条件的循环中,立足压缩的指数值(Int)和size列表(Int也).
@for((item, index) <- myItems.zipWithIndex) {
<div style="margin-bottom:20px;">
Item @{index+1} is @item <br>
@if(index == 0) { First element }
@if(index == myItems.size-1) { Last element }
@if(index % 2 == 0) { ODD } else { EVEN }
</div>
}
Run Code Online (Sandbox Code Playgroud)
链接问题的答案基本上就是你想要做的. zipWithIndex将您的列表(即a Seq[T])转换为Seq[(T, Int)]:
@list.zipWithIndex.foreach{case (item, index) =>
<li>Item @index is @item</li>
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14326 次 |
| 最近记录: |