symfony - div 元素上带有 Twig 的条件类
问题描述
我可以根据此 div 的内容更改添加到 div 元素的类吗?比如:“如果 div 为空,则添加此类,否则添加此类”并使用 id 或其他内容定位 div。
如果是,我该怎么做?谢谢
编辑:我找到了这样的解决方法
{% set vueBlocArchives_classes = [
'liste-archives',
'type-' ~ node.bundle|clean_class
]%}
{% set vuebloc_classes = [
'liste-vdl',
'type-' ~ node.bundle|clean_class
]%}
{% set vueBlocInfoAdmin_classes = [
'liste-info-admin',
'type-' ~ node.bundle|clean_class
]%}
然后我做:
{% if node.field_inserer_liste_viewfield is not empty and node.id == 77 %}
<aside {{ vuebloc_attribute.addClass(vueBlocArchives_classes) }}>
{{ content.field_inserer_liste_viewfield.0 }}
</aside>
{# Change classe selon le Nid - Ici nid de la page Info Admin #}
{% elseif node.field_inserer_liste_viewfield is not empty and node.id == 125 %}
<aside {{ vuebloc_attribute.addClass(vueBlocInfoAdmin_classes) }}>
{{ content.field_inserer_liste_viewfield.0 }}
</aside>
{% else %}
<aside {{ vuebloc_attribute.addClass(vuebloc_classes) }}>
{{ content.field_inserer_liste_viewfield.0 }}
</aside>
{% endif %}
但是我需要重复代码,所以我考虑在这部分放入一个变量:
{{ content.field_inserer_liste_viewfield.0 }}
</aside>
@sakhunzai 提示可能是一个更好的方法,但我如何在我的代码中使用它?
EDIT2:测试将静态代码放入变量但语法错误
{% set finAside = content.field_inserer_liste_viewfield.0 | render | trim "</aside>" %}
{# Change classe selon Nid - Ici nid de la page archives #}
{% if node.field_inserer_liste_viewfield is not empty and node.id == 77 %}
<aside {{ vuebloc_attribute.addClass(vueBlocArchives_classes) }}>
{{ finAside }}
相反,这项工作:
{% if node.field_inserer_liste_viewfield is not empty %}
{# Change classe selon Nid - Ici nid de la page archives #}
{% if node.field_inserer_liste_viewfield is not empty and node.id == 77 %}
<aside {{ vuebloc_attribute.addClass(vueBlocArchives_classes) }}>
{# Change classe selon le Nid - Ici nid de la page Info Admin #}
{% elseif node.field_inserer_liste_viewfield is not empty and node.id == 125 %}
<aside {{ vuebloc_attribute.addClass(vueBlocInfoAdmin_classes) }}>
{% else %}
<aside {{ vuebloc_attribute.addClass(vuebloc_classes) }}>
{% endif %}
{{ content.field_inserer_liste_viewfield.0 }}
</aside>
{% endif %}
受https://stackoverflow.com/a/42144678/2416915的启发, 我发布了另一个类似的问题:Is it possible to use Twig addClass with condition?
解决方案
是不是这么简单:
<div class="{{ divContent=='' ? 'emptyClass' :'notEmptyClass' }}">
{{divContent}}
</div>
推荐阅读
- c# - 如果为空,Linq 默认不工作
- gimp - GIMP - 从左到右以不同的量更改颜色级别
- javascript - async/await 不适合全局同步使用吗?
- asp.net - machine.config 和 app.config 文件中的连接字符串出现冲突错误
- javascript - 删除包含页面的 iframe 时不会触发 onbeforeunload
- python - 批处理文件 Python 执行
- python - 如何每一步更新 tkinter GUI?
- java - 我可以在 Java 中使用 FOR 循环绘制 n 个矩形吗?
- mysql - 查询以提取没有特定值的行
- javascript - 需要禁用 Qtip 超时