我正在使用g:link
标记为我的webapp创建一个简单的菜单:
<ul>
<li class="active">
<g:link controller="dashboard">Dashboard</g:link>
</li>
<li>
<g:link controller="projects">Projects</g:link>
</li>
...
</ul>
但只要链接对应当前网址,我就需要输出class="active"
。
在Grails中执行此操作的最佳或最常用方法是什么?
答案 0 :(得分:1)
在上面的例子中,我只想这样写:
<ul>
<li class="${controllerName == 'dashboard' ? 'active' : ''}">
<g:link controller="dashboard">Dashboard</g:link>
</li>
<li class="${controllerName == 'projects' ? 'active' : ''}">
<g:link controller="projects">Projects</g:link>
</li>
...
</ul>
在一般情况下,它可能很棘手。您必须至少将controllerName
,actionName
和params
与链接参数进行比较,或将当前网址作为字符串进行比较并将其与输出g.createLink(..)
进行比较 - 但是当然,不同的params顺序会打破这种逻辑。