在播放/斯卡拉;我很困惑为什么这不会编译:
@(tabNames: Seq[String])
@isActive(idx: Int) = {
@if(idx < 1) {
"active"
} else {
""
}
}
<ul class="nav nav-tabs">
@for((tab, idx) <- tabNames.zipWithIndex) {
@views.html.generic.navLi("tab" + idx.toString, tab, isActive(idx))
}
</ul>
错误内容如下:
发现:play.twirl.api.HtmlFormat.Appendable [error](扩展为) play.twirl.api.Html [error] required: String [error]
@views.html.generic.navLi("tab" + idx. toString, tab, isActive(idx))
它无法识别对isActive
模板的调用中的调用,并且我尝试了多种变体,例如@isActive(idx)
(isActive(@idx)
${isActive(idx)}
如建议here)等。此模板生成一个导航栏,传入选项卡名称并检查是否nav li
应该是active
(由类名/JS 配置)。
似乎在另一个模板调用中调用函数时语法必须不同 - 我无法正确理解。