我正在使用Twitter Bootstrap和Symfony 2与Twig。我的所有页面都有这个:
<div class="navbar navbar-inverse navbar-static-top">
<div class="navbar-inner">
<a class="brand" href="{{ path('home') }}">BudgetTracker</a>
<ul class="nav">
<li class="active"><a href="{{ path('expenses') }}">Expenses</a></li>
<li><a href="#about">Reports</a></li>
<li><a href="{{ path('categories') }}">Categories</a></li>
<li><a href="#contact">Months</a></li>
<li><a href="#contact">Bank Accounts</a></li>
</ul>
</div>
</div>
我不想在每个页面上复制它...问题是应该只为cuurent页面放置类active属性。有没有办法在不使用JavaScript的情况下成功,只有一些宏或包含?非常感谢你提前!
更新
<div class="navbar navbar-inverse navbar-static-top">
<div class="navbar-inner">
<a class="brand" href="{{ path('home') }}">BudgetTracker</a>
<ul class="nav">
{% if var == 'Expenses' %}
<li class="active"><a href="{{ path('expenses') }}">Expenses</a></li>
{% else %}
<li><a href="{{ path('expenses') }}">Expenses</a></li>
{% endif %}
{% if var == 'Reports' %}
<li class="active"><a href="#">Reports</a></li>
{% else %}
<li><a href="#">Reports</a></li>
{% endif %}
{% if var == 'Categories' %}
<li class="active"><a href="{{ path('categories') }}">Categories</a></li>
{% else %}
<li><a href="{{ path('categories') }}">Categories</a></li>
{% endif %}
{% if var == 'Months' %}
<li class="active"><a href="#">Months</a></li>
{% else %}
<li><a href="#">Months</a></li>
{% endif %}
{% if var == 'Bank Accounts' %}
<li class="active"><li><a href="#">Bank Accounts</a></li>
{% else %}
<li><li><a href="#">Bank Accounts</a></li>
{% endif %}
</ul>
</div>
</div>
我不是很优雅的尝试。我称之为:
{% include 'EMBudgetTrackerBundle::navbar.html.twig' with {'var':'Categories'} %}
答案 0 :(得分:1)
这很简单:
{% block menu_block %} //your content here {% endblock %}
{% block menu_block %} {{ parent() }} {% endblock %}
答案 1 :(得分:1)
执行此操作的简便方法是使用路线:
<ul class="nav nav-pills">
<li {% if app.request.attributes.get('_route') == 'your_route' %} class="active" {% endif %}>
<a href="{{ path('your_route') }}">MyTitle</a>
</li>
...
</ul>
这是对@Winzou提供的解决方案的改编。
答案 2 :(得分:0)
这是一个example。
{% if menu.url == current_url %} class="active"{% endif %}