我有以下(简化)布局:
<header>
... more stuff here
<nav id="nav">
<div class="content_wrapper">
<ul id="menu">
<li>dashboard</li>
</ul>
</div>
</nav>
</header>
<div id="main_content">
<div class="content_wrapper">
<g:layoutBody/>
</div>
</div>
我的问题是“菜单”导航依赖于layoutBody中呈现的内容。文本“仪表板”不仅会更改为“登录”,“支持”等,而且在某些页面上还有按钮,链接等。在Grails中有什么办法可以在不改变页面布局的情况下动态渲染这个基于layoutBody的NAV元素?我已经阅读了包含内容块部分的文档,但是它们没有解决问题,因为它们仍然在主布局中预先确定。
答案 0 :(得分:1)
我在grails webapp上遇到同样的问题。这是我解决它的方式。 在你的布局中:
<nav id="nav">
<div class="content_wrapper">
<ul id="menu">
//Here you can insert whatever you have in all your pages
//Then below you can insert custom content depending on main body
<li><g:pageProperty name="page.nav-content"/></li>
</ul>
</div>
</nav>
然后在需要其他模块(如登录模块)的主视图(如home.gsp)中,您可以包含以下内容:
<content tag="nav-content">
<g:include controller="nav" action="login"/>
</content>