在播放/斯卡拉;我很困惑为什么这不会编译:
@(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 配置)。
似乎在另一个模板调用中调用函数时语法必须不同 - 我无法正确理解。