我需要在模板中执行equals比较,以便进行条件渲染。
例如,我有<li class="active">
。在这里,如果@request.path
和@controllers.routes.Application.action()
相等,我希望仅显示活动,否则空白字符串就可以了。
docs中描述的if语句似乎在识别副词时受到限制,因此不起作用。
或者,如果您可以帮我创建自定义标记,那也可以。没有关于如何做到这一点的文档。我更喜欢java。如果有scala替代方案,请在冗长方面犯错误,因为我还没弄明白。
感谢。
答案 0 :(得分:1)
如果没有自定义标记,您可以在模板中尝试这样的内容:
<li class="@("active".when(request.path == controllers.routes.Application.action().toString()))">
示例应用程序中有一个示例(samples / java / forms / app / views / main.scala.html) 不要忘记toString()因为action()返回一个Call而不是String。
要执行此操作的自定义标记可能是:
@menu_element(name: String, route: Call) = {
<li class="@("active".when(route.toString() == request.path))"><a href="@route">@name</a></li>
}
使用示例:
<ul>
@menu_element("Home", controllers.routes.Application.index)
</ul>