2

私はここ数週間 golang をいじっていて、最近 revel フレームワークを調べ始めました。
私が使用した他の言語/フレームワークでは、テンプレート内から現在のルートが何であるかを常に確認できました。ナビゲーションなどを別のテンプレート ファイルに保持しやすくし、これを実行するだけで簡単になりました。

<!-- in header template -->
<ul class="nav">
    {{ if eq .req.action "App.Index" }}
        <li class="active"><a href="#">
    {{ else }}
        <li><a href="{{url "App.Index" }}">
    {{end}}
    Home</a></li>
    <!-- other links here -->
</ul>

これは私が書いている実際のコードではありませんが、アイデアが何であるかが明確になることを願っています: ナビゲーション用のテンプレートを手元に用意し、現在のアクションに応じてクラス/リンクを設定します。
ソースコードといくつかのgolangテンプレートの例をしばらく調べた後、現在のアクションまたはその他のものをテンプレートに公開する方法がまったくわかりませんでした.

これを回避するために、私は現在、レンダー引数を自動的に設定する func インターセプターを使用しています。

func prependRoute(c *revel.Controller) revel.Result {
    c.RenderArgs["_current_route"] = c.Action
    return nil
}

これは正常に機能していますが、少しハッキーな感じがします。本当に必要なときに func インターセプターを予約できるようにする、本当に明白な何かがおそらく欠けていると思います。

質問は簡単です: Revel テンプレートで現在のアクションが何であるかを知るための、正しくて最も信頼できる方法は何ですか?

4

0 に答える 0