根据当前视图突出显示菜单项

时间:2015-04-27 17:45:50

标签: python flask jinja2

我目前正在检查每个菜单项上模板中的变量,看看是否应该添加一个CSS类来突出显示它。

{% if title == "Home" %}
<li class="active">
{% else %}
<li>
{% endif %}

我想创建一个包含四个菜单项的列表。为了达到预期的效果,我将不得不重复上述代码四次。

"menu":[
{"title":"home", "link":"/"}, 
{"title":"about", "link":"about"}, 
{"title":"contact","link":"contact"}
]

是否有更简单的方法在列表中循环并突出显示相应的项目?

1 个答案:

答案 0 :(得分:7)

而不是传递任何东西,或试图解析一些网址或列表,只需制作模板的高亮部分。 创建一个包含菜单的基本模板,每个class = property都有一个块。 &LT; UL&GT;     &lt; li class =&#34; {%block nav_home%} {%endblock%}&#34;&gt; Home&lt; / li&gt;     &lt; li class =&#34; {%block nav_about%} {%endblock%}&#34;&gt;关于&lt; / li&gt;     &lt; li class =&#34; {%block nav_contact%} {%endblock%}&#34;&gt;联系&lt; / li&gt; &LT; / UL&GT; 在扩展基础的页面模板中,使用值&#34; active&#34;覆盖其中一个块。 {%extends&#34; base.html&#34; %} {%block nav_contact%}有效{%endblock%} {%block content%}&lt; h3&gt;联系&lt; / h3&gt; {%endblock%}