如何根据元素的类在 Twig 中应用特定的类?

问题描述 投票:0回答:1

我正在开发一个 Drupal 网站,并尝试根据 HTML 元素的现有类应用 Twig 文件中的特定类。具体来说,我想将“Card-label”类应用于具有“views-fieldviews-field-title”类的卡片元素的标题。尽管多次尝试,我还是无法达到预期的结果。

这是我的 Twig 文件的摘录:

<div class="Cardlist">
    {% if title %}
        <h3>{{ title }}</h3>
    {% endif %}
    {% for row in rows %}
        {%
            set row_classes = [
                default_row_class ? 'views-row',
            ]
        %}
        <div class="Card">
            <div{{row.attributes.addClass(row_classes)}}>
                {{ row.content }}
            </div>
        {% endfor %}
    </div>
</div>

我尝试使用 Twig 中的条件添加“卡片标签”类,以确保它仅应用于具有“视图字段视图字段标题”类的元素。我的尝试看起来像这样:

{% if 'views-field views-field-title' in row.content['#row'].attributes.class %}
    <div class="Card-label">
        {{ title }}
    </div>
{% else %}
    {{ title }}
{% endif %}

以下是当前 HTML 元素的示例:

<div class="views-field views-field-title">
    <span class="field-content">My Title</span>
</div>

这是我希望 HTML 元素在应用 Twig 类后的外观:

<div class="Card">
    <div class="Card-label">
        <h3>My Title</h3>
    </div>
</div>

Drupal 版本:10

drupal twig
1个回答
0
投票

如果

row.content['#row'].attributes.class
确实是一个实际数组,那么您需要将
if
- 语句更改为以下内容:

{% if 'views-field' in row.content['#row'].attributes.class and 'views-field-title' in row.content['#row'].attributes.class %}
    Both "views-field" and "views-field-title" are inside the array
{% endif %} 
© www.soinside.com 2019 - 2024. All rights reserved.