1

Twirl and Play 2.3 を使用してある種のclass="active"機能を作成しようとしていますが、機能するソリューションが見つからず、短く、Intellij 構文がいたるところにスローされません。

これは私が現在持っているものです:

<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 は次のように考えています。 Intellij のスクリーンショット

4

1 に答える 1

1

ええ、IntelliJ はビューの構文と混同されることがあります。とにかく、アクティブなクラスを追加する (またはしない) ためのカスタム util を作成できます (Java サンプル)

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>
于 2014-08-25T17:19:58.523 に答える