2011-05-12 71 views
2

如何確定我目前在Lift中的頁面?高光當前菜單項升降

在Django,例如,在我的基礎模板我有簡單的檢查,像這樣的:

<li {% ifequal main_navigation "home" %} class="selected"{%endifequal%}> 
    <a href="{% url home %}">Home</a> 
</li> 
<li {% ifequal main_navigation "risk"%}class="selected"{%endifequal%}> 
    <a href="{% url risk %}">Risk</a> 
</li> 

<li {% ifequal main_navigation "contact" %}class="selected"{%endifequal%}> 
    <a href="{% url contact %}">Contact</a> 
</li> 

這裏,如果決定了上下文變量main_navigation設置爲。

回答

5

我假設您使用站點地圖作爲菜單。

使用Menu.builder片段呈現菜單時,可以使用其他參數進一步調整菜單。這個例子將只呈現菜單的第一層,如果它是當前頁面,則將類當前添加到菜單項。

設計師友好例如:

<div class="lift:Menu.builder?level=0;expand=false;li_item:class=current"></div> 

<lift:Menu.builder li_item:class="selected" level="0" expand="false" /> 

詳細內容見電梯維基:http://www.assembla.com/wiki/show/liftweb/SiteMap

+0

0級似乎表明一切 - 而不僅僅是頂級.. – drozzy 2011-05-13 14:12:51

+0

我想我簡化了一下我的例子:我也使用expand = false。我會編輯我的anwser來添加這個。然後,頂級菜單將顯示站點地圖中未隱藏的所有項目,而不是在子菜單中。請參閱https://github.com/lift/examples/blob/master/combo/example/src/main/scala/bootstrap/liftweb/Boot.scala以獲得子菜單 – 2011-05-13 19:00:00

+0

的站點地圖的一個很好的示例expand = false並不會幫助您,但沒關係,我打開了另一個問題:http://stackoverflow.com/questions/5993350/how-to-highlight-parent-of-the-current-page – drozzy 2011-05-13 19:04:02

1

如果您使用Lift的SiteMap和Menu功能,我認爲這是自動處理的。你可以在這裏閱讀:http://simply.liftweb.net/index-3.2.html#toc-Subsection-3.2

要回答你的更廣泛的問題,在代碼片段(不是模板)中,你可以使用LiftRules.context,它返回一個包含路徑屬性的HTTPContext。