加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

获取当前循环的索引在Play! 2 Scala模板

发布时间:2020-12-16 09:39:00 所属栏目:安全 来源:网络整理
导读:在玩! 1,可以使用以下代码获取循环中的当前索引: #{list items:myItems,as: 'item'} liItem ${item_index} is ${item}/li#{/list} 在Play2中有一个等同的东西吗? @for(item - myItems) { liItem ??? is @item/li} _isLast和_isFirst的相同问题。 ps:thi
在玩! 1,可以使用以下代码获取循环中的当前索引:

#{list items:myItems,as: 'item'}
    <li>Item ${item_index} is ${item}</li>
#{/list}

在Play2中有一个等同的东西吗?

@for(item <- myItems) {
    <li>Item ??? is @item</li>
}

_isLast和_isFirst的相同问题。

ps:this question是非常相似的,但解决方案暗示修改代码返回一个元组(项目,索引),而不是一个项目列表。

解决方法

是的,zipWithIndex是内置的功能,幸运的是使用它更优雅的方式:

@for((item,index) <- myItems.zipWithIndex) {
    <li>Item @index is @item</li>
}

索引为0,所以如果要从1而不是0开始,只需将1添加到当前显示的索引:

<li>Item @{index+1} is @item</li>

PS:回答你的另一个问题 – 不,没有隐含的索引,_isFirst,_isLast属性,无论如何你可以在循环中编写简单的Scala条件,基于压缩的索引(Int)和列表的大小(Int as好)。

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读