2012-01-10 101 views
1

我在boot.scala顯示「主頁」下面的菜單項,「關於」,或用戶菜單從MetaMegaProtoUser:顯示登錄和註冊單獨的菜單(分組)使用電梯

val homeLink = new Link("index" :: Nil, false) 
val homeMenu = Menu(Loc("homeHome", homeLink, "Home")) 
val aboutLink = new Link("about" :: "index" :: Nil, false) 
val aboutMenu = Menu(Loc("aboutHome", aboutLink, "About")) 
val menus = homeMenu :: aboutMenu :: User.menus 
LiftRules.setSiteMap(SiteMap(menus: _*)) 

在我default.html中我有以下渲染菜單:

<lift:Menu.builder li_item:class="active" linkToSelf="true"></lift:Menu> 

我想有「家」和「關於」在一個位置分組菜單和User.menus在單獨的位置在我的網頁(例如右上方顯示爲「登錄|註冊」。

回答

1

您必須使用Menu.group片段,該片段允許您呈現特定LocGroup的菜單項。第7.5.2節中的網頁Exploring Lift有一個很好的章節。

LocGroup允許您對菜單項進行分類...菜單項可能與一個或多個組相關聯。只需爲組名稱添加一個帶有字符串參數的LocGroup參數。

這意味着你可以做這樣的事情,

val entries = (
    (Menu("Login")/"login" >> LocGroup("main")) :: 
    (Menu("Logout")/"logout" >> LocGroup("user")) :: 
    (Menu("Profile")/"profile" >> LocGroup("user", "main")) :: 
    (Menu("Home")/"index" >> LocGroup("main")) :: Nil 
) 

加入entriesBoot.scala通過

LiftRules.setSiteMap(SiteMap(entries: _*)) 

可以渲染,

LocGroup("user")唯一的菜單項後
<div id="userMenu"> 
    <div class="lift:Menu.group?group=user;a:class=userLink"></div> 
</div> 

請注意Menu.group呼叫您通過傳入參數group=user來識別組,並且還可以傳遞風格參數,例如a:class=userLink

然後,您可以自由設計您想要的#userMenu,將它放在任何地方等等,並儘可能多地去組織您的心臟!

相關問題