是否可以将id
或class
等HTML属性添加到Grails平台核心导航API生成的每个菜单项?
也许类似于:
home(controller: 'home', action:'index', titleText:'Home', elementId: 'navHome')
我正在编写一些使用生成的链接的功能测试。但是,链接文本(可能还有URL)可能会更改。使用ID将使测试更易于维护。
Navigation API提供了通过data
映射和自定义菜单项渲染添加附加值的功能。
示例:
步骤1
将data
映射添加到config/AppNavigation.groovy
中的菜单项定义中。
home(controller: 'home', action:'index', titleText:'Home', data: [elementId: 'navHome'])
步骤2
使用GSP文件中的item.data.*
引用data
映射。
<nav:primary scope="some scope" custom="true">
<li>
<p:callTag
tag="g:link"
attrs="${linkArgs + [class:active ? 'active' : ''] + [elementId:item.data.elementId]}"
><nav:title item="${item}"/></p:callTag>
</li>
</nav:primary>
这将导致以下HTML:
<ul class="nav primary">
<li>
<a href="/VVAdmin/" id="navHome" class="active">Home</a>
</li>
</ul>
有关更多信息,请参阅导航API文档中的nav:菜单标记文档。