如何在没有Twig中的js的情况下更改哪个是活动菜单?

如何在没有Twig中的js的情况下更改哪个是活动菜单?,twig,Twig,我正在使用和Symfony 2与细枝。我所有的页面都有这个: <div class="navbar navbar-inverse navbar-static-top"> <div class="navbar-inner"> <a class="brand" href="{{ path('home') }}">BudgetTracker</a> <ul c

我正在使用和Symfony 2与细枝。我所有的页面都有这个:

<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>
这很简单:

  • 将其定义为带有
    的单个细枝
    {%block菜单\u block%}//您的内容在这里{%endblock%}
  • 在每页中使用块
    {%block菜单\u block%}{{parent()}{%endblock%}
  • 在当前菜单元素中为给定类生成条件语句。显然,您必须将页面的名称或id传递给您的小树枝(或从请求中检索,即),才能做出您想要做的事情
  • 这是一个例子


    执行此操作的简单方法是使用以下路线:

    <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提供的解决方案的改编。

    非常感谢!:)我尝试了类似的方法,并用它更新了问题。如果你像
    ..
    那样做会容易得多。哦,是的,非常感谢!:)现在看起来好多了。
    {% include 'EMBudgetTrackerBundle::navbar.html.twig' with {'var':'Categories'} %}
    
    {% if menu.url == current_url %} class="active"{% endif %}
    
    <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>