2012-01-12 9 views
4

レイアウトにあるメニューの一部を駆動するためにpageProperty関数を使用しています。私はlinkに特定のクラスを適用する必要があります。これは、meta.nav pagePropertyが返すものに依存します。今のところ、それは私がこれをクリーンアップしたいと思いpageプロパティとインラインIF条件

<g:if test="${pageProperty(name:'meta.nav') == 'support'}"> 
 <g:link class="selected" ...>support</g:link> 
</g:if> 
<g:else> 
 <g:link ...>support</g:link> 
</g:else> 

、しかし、これは私がparanthesisとなしのいくつかの異なるバリエーションを試してみた

<g:link class="${pageProperty(name:'meta.nav') == 'support' ? selected : null}" ...>support</g:if> 

を動作しません...このようになります私が必要とするものを手に入れているようです。例:

${(pageProperty(name:'meta.nav') == 'support') ? selected : null} 
${(pageProperty(name:'meta.nav') == 'support' ? selected : null)} 

ちょうどそれが正しく動作するように見えることはできません。どんな助けもありがとうございます。

答えて

3

${ pageProperty(name:'meta.nav').equals('support') ? 'selected' : null } 

としてグルーヴィーはないが、パーサにあまり混乱するかもしれません(それはどこか何かのように見えるがどこそれはshouldn混乱と== supportをダンプしています't)

1

私は真の条件に文字列を作るしようとするだろう:未定義されるだろうGSPスクリプト内selectedという名前の変数にアクセスしようとすることができる

${(pageProperty(name:'meta.nav') == 'support') ? 'selected' : null} 

希望に役立ちます。どのように暗闇の中で野生刺し、として

+0

これはうまくいきません。レンダリングされたHTMLでは、私はこれで終わりとなります:support Gregg

+0

class = "support"部分は動作していますが、何らかの理由で余分な== "support"で終わります。 – Gregg

+0

@Greggそれはうまくいくのではなく、 '$ {pageProperty(name: 'meta.nav')。equals( 'support')? 'selected':null} 'あなたに近づけますか? –