不知道哪個是觸發grails中各種模板的最佳方法。 我正在嘗試對菜單進行硬編碼,但對於不同的區域仍然有不同的菜單。我個人發現它是一個浪費在數據庫上運行查詢來構建菜單。如何在Grails中觸發子視圖
快速查看代碼段和場景。 subnav是動態菜單。
<body>
<div id='navigation'>
Main menu list
</div>
<div id='subnav'>
Render grails template base on path
e.g. http://www.example.com/cars/ford => render ${ford} menu template
http://www.example.com/cars/toyota => render ${toyota} menu template
</div>
</body>
現在渲染模板是很容易的部分,因爲我可以只使用跟在模板名稱後面的變量。例如<g:render template="/layouts/${submenu-name}"/>
我不確定什麼是設置此變量的最佳方式。 (善良/邪惡的做法)
我是否會在url/uri中使用過濾器和小提琴來獲取我的位置,或者在需要時每次在控制器中設置它,還是使用我沒有想到的東西?
感謝
編輯:
不知道這是最好的做法,但可以說我有一個「汽車模板」和「摩托車模板」,然後我就用過濾器在視圖到達之前更改模型。
E.g.
def filters = {
car(uri:'/car/*') {
after = { model -> model.menuTpl = 'car' }
}
bike(uri:'/bike/*') {
after = { model -> model.menuTpl = 'bike' }
}
然後在主視圖:
<g:render template="/layouts/${menuTpl}" />
進行的更多更新 – pieterk 2011-04-10 22:21:45