我正在尝试使用Twirl和Play 2.3创建某种class="active"
功能但是我找不到一个有效的解决方案,这个解决方案很简短,并且不会在整个地方抛出我的Intellij语法。 / p>
这就是我目前所拥有的:
<ul class="nav navbar-nav">
<li @(if (request.uri == "/") Html("""class="active""""))><a href="@routes.Application.home()">Home</a></li>
<li @(if (request.uri == "/about") Html("""class="active""""))><a href="@routes.Application.about()">About</a></li>
<li @(if (request.uri == "/features") Html("""class="active""""))><a href="@routes.Application.features()">Features</a></li>
</ul>
这就是Intellij的想法:
答案 0 :(得分:1)
是的,IntelliJ有时会与view的语法混淆,无论如何你可以创建ie自定义util来添加(或不添加)活动类(Java sample)
package utils;
import play.api.templates.Html;
import play.mvc.Http;
public class AttrHelpers {
public static Html setActiveClass(String requiredPath, Http.Request request) {
return (requiredPath.equals(request.uri())) ? Html.apply("class=\"active\"") : null;
}
}
那么你可以在你的观点中使用它,如:
<li @utils.AttrHelpers.setActiveClass("/about", request) >
<a href="@routes.Application.about()">About</a>
</li>
<li @utils.AttrHelpers.setActiveClass("/features", request) >
<a href="@routes.Application.features()">Features</a>
</li>