gpt4 book ai didi

playframework - 类似于 PlayFramework 2.x 模板中的 isFirst/isLast

转载 作者:行者123 更新时间:2023-12-04 18:09:35 25 4
gpt4 key购买 nike

我在 PlayFramework 2.1.2 中迭代这样的变量

  @for(l: Lang <- Globals.availableLangs) {
@if(l != ctx.lang) {
<a ng-click="i18nManager.changeLanguage('@l.code')" prevent-default href="#">@Messages("global.footer.langChange." + l.code.replace("-","_"))</a>
}
}

我想在循环生成的每个“a”之间添加 · 。在 PlayFramework 1.x 中,我们为 {list} 标签设置了 _isFirst _isLast。我如何在 Play Framework 2.x 中执行此操作?

我需要这样的东西:

  @var first = true
@for(l: Lang <- Globals.availableLangs) {
@if(!first) { &nbsp;&middot;&nbsp; @first = false}
@if(l != ctx.lang) {
<a ng-click="i18nManager.changeLanguage('@l.code')" prevent-default href="#">@Messages("global.footer.langChange." + l.code.replace("-","_"))</a>
}
}

最佳答案

如果您需要访问第一个和最后一个元素,您总是可以使用在 Immutable List API 中找到的 headlast .并且为了避免再次遍历头部,仅遍历列表的 tail

@defining(@Globals.availableLangs.filterNot(_ == ctx.lang).head){ l =>
<a ng-click="i18nManager.changeLanguage('@l.code')" prevent-default href="#">@Messages("global.footer.langChange." + l.code.replace("-","_"))</a>
}
@for(l: Lang <- Globals.availableLangs.filterNot(_ == ctx.lang).tail) {
&nbsp;&middot;&nbsp;
<a ng-click="i18nManager.changeLanguage('@l.code')" prevent-default href="#">@Messages("global.footer.langChange." + l.code.replace("-","_"))</a>
}

编辑 误读您的意图,更新以匹配它。

EDIT2 添加过滤器以消除条件检查。

关于playframework - 类似于 PlayFramework 2.x 模板中的 isFirst/isLast,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17614463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com