劇中! 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: この質問 は非常に似ていますが、解決策は、コードを変更して、item
のリストではなくTuple (item, index)
を返すことを意味します。
はい、zipWithIndex
は組み込み機能です。幸い、よりエレガントな使用方法があります。
@for((item, index) <- myItems.zipWithIndex) {
<li>Item @index is @item</li>
}
インデックスは0ベースであるため、0ではなく1から開始する場合は、現在表示されているインデックスに1を追加するだけです。
<li>Item @{index+1} is @item</li>
PS:他の質問への回答-いいえ、暗黙のindexes
、_isFirst
、_isLast
プロパティはありません。とにかく、単純なScalaリストのzip形式のインデックス(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>
}
リンクされた質問の答えは基本的にあなたがやりたいことです。 zipWithIndex
はリスト(_Seq[T]
_)をSeq[(T, Int)]
に変換します。
_@list.zipWithIndex.foreach{case (item, index) =>
<li>Item @index is @item</li>
}
_