2011-02-28 40 views
0

我有以下的(簡化)佈局:Grails的佈局 - 嵌套佈局問題的種類,條件內容

<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元素?我已閱讀包含內容區塊的文檔,但它們並未解決問題,因爲它們仍在主佈局中預先確定。

回答

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> 
+0

我一個解決方案去*與此類似*,但足夠接近可以稱此爲正確。謝謝。 – Gregg 2011-02-28 22:19:08