我在boot.scala中有以下菜单条目,以显示MetaMegaProtoUser中的“Home”,“About”和用户菜单:
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>
我希望将“Home”和“About”菜单分组到一个位置,将User.menus分组到我的页面中的单独位置(例如右上角显示为“Login | Sign up”。
答案 0 :(得分: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
)
通过
将entries
添加到Boot.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设计风格,把它放在任何地方等等,然后根据你的心愿去找那么多的团体!