Jinja2 - 带有 space 的字符串变量在类名中读取不正确

Jinja2 - string variable with a space not reading correctly in classname

我遇到了一个问题,Jinja2 没有将字符串 'fa fa-tachometer' 正确地渲染到 class 名称中。

Jinja2 像这样呈现该字符串:

<i class={{ icon }}></i>

进入

<i class="fa" fa-tachometer></i>,

如下图代码所示。我已经完成 space 文字,但它并没有解决我的问题。

{% set navigation_bar = [
    ('/dashboard', 'dashboard', 'fa fa-tachometer', 'Dashboard')
] -%}
{% set active_page = active_page|default('dashboard') -%}

{# For each of the sidebar nav items, render an <li> #}
{% for href, id, icon, title in navigation_bar %}
    {{ icon }}
    <li {% if id == active_page %} class="active" {% endif %}>
        <a href="{{ href|e }}">
            <i class={{ icon }}></i>
            <span class="nav-label">{{ title|e }}</span>
        </a>
    </li>
{% endfor %}

希望有解决方案。谢谢!

这不是 Jinja 的问题;你的 HTML 有问题。你告诉 Jinja 输出

<i class=fa fa-tachometer></i>

(您使用的 DOM 检查器正在添加引号,而不是 Jinja。如果您查看源代码 HTML,它们不存在。)

您需要在 class

的值周围加上引号
<i class="{{ icon }}"></i>

这是我的评论建议。您只想在 {{ icon }} 上添加双引号。

<i class="{{ icon }}"></i>