【发布时间】:2018-05-07 20:30:40
【问题描述】:
在 Play/Scala 中;我很困惑为什么这不会编译:
@(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 [错误](其中 扩展为) 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)。
似乎在另一个模板调用中调用函数时语法必须不同 - 我无法正确理解。
【问题讨论】:
标签: scala templates playframework twirl play-templates