如何通过三元设置 html 属性+值?

How to set a html attribute + value via ternary?

我尝试了无数种选择,但我从来没有在值字符串中包含 space 时立即用引号将整个值括起来:

{% set result_string= elements
        ? ( "data-custom-attribute=%s"|format( elements ) )
        : ''
%}

你如何使这个工作得到例如 data-custom-attribute="this is a test" 具有值 'this is a test' 的元素?

过滤器 format 不会向您在代码段中添加的示例添加任何引号。

您可能正在某些开发人员工具中验证您的输出,这些工具给出了 false-positive。使用生成的源验证您的输出 (CTRL + U)

在变量 elements 中添加引号或在您的 html 代码段中添加引号:

{% set elements = "\"foo bar foo\"" %}
{% set result_string= elements
        ? ( "data-custom-attribute=%s"|format( elements ) )
        : ''
%}

{% set elements = "foo bar foo" %}
{% set result_string= elements
        ? ( "data-custom-attribute=\"%s\""|format( elements ) )
        : ''
%}

demo