Nic*_*ick 3 arrays drupal symfony twig drupal-8
我有一个 JSON 格式的对象,如下所示:
{
'class': ['nav-link', 'dropdown-toggle'],
'data-toggle': ['dropdown']
}
Run Code Online (Sandbox Code Playgroud)
然后我需要能够将另一个类附加到对象内的类数组中。
这段代码似乎不起作用;它只是覆盖类数组。
{% set link_attribs = { 'class' : ['nav-link', 'dropdown-toggle'], 'data-toggle':'dropdown'} %}
{% set link_attribs = link_attribs|merge({'class': ['highlighted']}) %}
Run Code Online (Sandbox Code Playgroud)
我真的想做这样的事情,但它只会引发标点符号错误。
{% set link_attribs.class = link_attribs.class|merge(['highlighted']) %}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
使用Twig,你不能直接设置对象属性,所以“ set (...).class”永远不会起作用。default但是,您可以创建一个从和值继承的新变量options(就像在大多数 JavaScript 代码中一样)。
例如:
{%
set options = link_attribs | merge({
'class': link_attribs.class | merge(['highlighted'])
})
%}
{% for class in options.class %}
{{ class }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
将显示:
nav-link
dropdown-toggle
highlighted
Run Code Online (Sandbox Code Playgroud)
参见小提琴。
| 归档时间: |
|
| 查看次数: |
7701 次 |
| 最近记录: |