突出显示当前菜单项目提升

时间:2011-05-12 19:39:20

标签: lift

如何确定我目前在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>

这里, if 确定上下文变量 main_navigation 的设置。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

如果您使用Lift的SiteMap和菜单功能,我认为这是自动处理的。您可以在此处阅读:http://simply.liftweb.net/index-3.2.html#toc-Subsection-3.2

要回答更广泛的问题,请在Snippet(非模板)中使用LiftRules.context,它返回包含路径属性的HTTPContext。