2

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>

各ページにコピーしたくない... 問題は、クラスのアクティブな属性を現在のページにのみ配置する必要があることです。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'} %}
4

3 に答える 3

1

それは非常に簡単です:

  1. これを単一の小枝として定義します
    {% block menu_block %} //your content here {% endblock %}
  2. すべてのページでブロックを使用する
    {% block menu_block %} {{ parent() }} {% endblock %}
  3. 現在のメニュー要素でクラスを与えるための条件文を作成します。明らかに、あなたはあなたがやろうとしていることをするためにあなたの小枝に渡す(またはリクエストから取得する、すなわち)あなたのページの名前またはIDを渡さなければなりません
于 2013-01-25T08:42:48.057 に答える
0

ここにがあります。

{% if menu.url == current_url %} class="active"{% endif %}
于 2013-10-30T16:04:50.387 に答える