3

「アクティブな」クラスをさまざまなページに配置するのに苦労しています。レイアウトを介して各ページにナビゲーションバーを読み込んでいますが、これが問題になる可能性がありますか?

4

2 に答える 2

16

ナビゲーションバーを作成するためのレイアウトgsp内にこれがあり、完全に機能します。個々のアクションではなく、コントローラーのレベルのナビゲーションバーにのみアイテムがあります。

<li ${controllerName.equals('schedule') ? 'class="active"' : ''}>Schedule</li>

Grailsによって生成されたデフォルトのコントローラーには、次を使用できます。

<li ${controllerName == null ? 'class="active"' : ''}>Home</li>
于 2012-10-04T12:12:33.463 に答える
2

はい、それが問題です。

ページをリロードするたびに、すべての<li>要素がclass=active再びアクティブに設定されます。

あなたが/grails-app/views/layouts/main.gsp以下を持っている場合:

<div class="navbar">
  <div class="navbar-inner">
    <ul class="nav">
      <li class="active"><a href="/home">Home</a></li>
      <li><a href="/fred">Fred</a></li>
      <li><a href="/barney">Barney</a></li>
    </ul>
  </div>
</div>

また、FredとBarneyのGSPはmain.gspレイアウトを使用します。これらをクリックすると、上記のコードが読み込まれ、[ホーム]のリンクは引き続きアクティブになります。

解決策は、Navbarコントロール用のTaglibを作成するか、個別のレイアウトページを作成することです。

于 2012-09-18T20:29:53.600 に答える