1

私はgrailsでtwitterブートストラップを使用しており、私のレイアウトには次のものがあります:

        <div class="nav-collapse">
            <ul class="nav">
                <li><a href="${createLink(uri: '/request/new')}">My Link</a></li>
            </ul>
        </div>

私のページには次のものがあります。

<html>
    <head>
        <meta name="layout" content="bootstrap">
    </head>

    <body>
        sometext
    </body>
</html>

質問

私のレイアウトでは、My Linkアクションがクリックされたことをどのように検出しますか? を使用して強調表示できるようにclass="active"

4

4 に答える 4

5

actionName と controllerName を使用して、現在のアクションを確認します。

    <div class="nav-collapse">
        <ul class="nav">
            <li ${controllerName == 'request' && actionName == 'new' ? 'class="active"' : ''}><a href="${createLink(uri: '/request/new')}">My Link</a></li>
        </ul>
    </div>

ちなみに、可能な場合はg:link代わりに使用することをお勧めしますg:createLink。ここ :

    <div class="nav-collapse">
        <ul class="nav">
            <li ${controllerName == 'request' && actionName == 'new' ? 'class="active"' : ''}><g:link controller="request" action="new">My Link</g:link></li>
        </ul>
    </div>
于 2013-01-03T23:38:28.443 に答える
3

これが私がこれを行う傾向がある方法です。

まず、レイアウトで次のようにします。

<div class="nav-collapse">
    <ul class="nav">
        <li class="${ pageProperty(name:'meta.nav').equals( 'foo' ) ? 'active' : null }"><a href="${createLink(uri: '/request/new')}">My Link</a></li>
    </ul>
</div>

そしてあなたのページで:

<html>
    <head>
        <meta name="layout" content="bootstrap">
        <meta name="nav" content="foo"/>
    </head>

    <body>
        sometext
    </body>
</html>

foo.activeクラスを適用するトリガーです。

于 2013-01-03T22:09:46.463 に答える
1

レイアウト gsp を次のように変更します。

<div class="nav-collapse">
    <ul class="nav">
        <li onclick="javascript: this.setAttribute("class","active");">
            <g:remoteLink controller='request' action='new' update='data'>My Link</g:remoteLink>
        </li>
    </ul>
</div>
<div id="data">
    <g:layoutBody />
</div>
于 2013-01-04T02:26:45.453 に答える
1

これはうまくいくはずです(Isammocの答えとは少し異なることに注意してください)

<li class="${controllerName == 'user' && actionName == 'profile' ? 'active' : ''}"> profile </li>
于 2014-12-24T22:30:37.830 に答える