使用树枝扩展将 link 标记为活动?
Using a twig extension to mark link as active?
我想高效地找到我的导航栏上的活动页面,以对其应用不同的 class。
目前,我是这样做的:
{% if app.request.get('_route') == 'route_name' %}
<li class="active">
{% else %}
<li>
{% endif %}
<a href="{{ path('route_name') }}">Link</a></li>
有没有办法不用那么多重复自己?
我想用twig扩展来检查给定的路由,但我没有找到在扩展代码中获取请求路由的方法。
部分是你可以避免重复使用 Twig 的方法。像这样创建一个 _link.html.twig
文件:
{% if app.request.get('_route') == 'route_name' %}
<li class="active">
{% else %}
<li>
{% endif %}
<a href="{{ path('route_name') }}">Link</a></li>
并在您的模板中执行:
{% for route in routeToBeLinked %}
{% include '_link.html.twig' with { 'route_name': route } %}
{% endfor %}
我认为好主意会得到应用"macro"
还有一点点其他情况,但我对我的过滤器选项卡这样做:
<ul>
{{ _self.filter('unpaid', 'unpaid') }}
{{ _self.filter('unproduced', 'not yet in production') }}
{{ _self.filter('arrived', 'delivery will receive') }}
</ul>
{% macro filter(key, name) %}
<li class="{{ _filter == key ? 'active' : '' }}"><a href="{{ path('__order', {'_filter': key}) }}">{{ name }}</a></li>
{% endmacro %}
_filter 是在控制器上分配的变量
所以你可以用类似的方式组织你的案例
我想高效地找到我的导航栏上的活动页面,以对其应用不同的 class。
目前,我是这样做的:
{% if app.request.get('_route') == 'route_name' %}
<li class="active">
{% else %}
<li>
{% endif %}
<a href="{{ path('route_name') }}">Link</a></li>
有没有办法不用那么多重复自己?
我想用twig扩展来检查给定的路由,但我没有找到在扩展代码中获取请求路由的方法。
部分是你可以避免重复使用 Twig 的方法。像这样创建一个 _link.html.twig
文件:
{% if app.request.get('_route') == 'route_name' %}
<li class="active">
{% else %}
<li>
{% endif %}
<a href="{{ path('route_name') }}">Link</a></li>
并在您的模板中执行:
{% for route in routeToBeLinked %}
{% include '_link.html.twig' with { 'route_name': route } %}
{% endfor %}
我认为好主意会得到应用"macro"
还有一点点其他情况,但我对我的过滤器选项卡这样做:
<ul>
{{ _self.filter('unpaid', 'unpaid') }}
{{ _self.filter('unproduced', 'not yet in production') }}
{{ _self.filter('arrived', 'delivery will receive') }}
</ul>
{% macro filter(key, name) %}
<li class="{{ _filter == key ? 'active' : '' }}"><a href="{{ path('__order', {'_filter': key}) }}">{{ name }}</a></li>
{% endmacro %}
_filter 是在控制器上分配的变量
所以你可以用类似的方式组织你的案例