向Grails平台核心导航API中的导航项添加元素ID



是否可以将idclass等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:菜单标记文档。

最新更新