【问题标题】:How to escape Twig delimiters in a Twig template?如何在 Twig 模板中转义 Twig 分隔符?
【发布时间】:2012-09-19 14:44:16
【问题描述】:

Twig 使用{{ }}{% %}{# #} 分隔符。

但是如何在 Twig 模板中显示{{ }}? 我不是在谈论 HTML 转义。

我问这个问题是因为我想在我的 Twig 模板中包含一个小胡子模板,以便我将填充来自 AJAX 调用的数据。

【问题讨论】:

    标签: twig


    【解决方案1】:

    最简单的方法是使用变量表达式输出变量分隔符({{):

    {{ '{{' }}
    

    替代品(当你不得不逃避太多时使用)是原始的(verbatim 自 1.12 起)块:

    {% raw %}
        <ul>
        {% for item in seq %}
            <li>{{ item }}</li>
        {% endfor %}
        </ul>
    {% endraw %}
    

    其实挺well documented

    【讨论】:

    • 谢谢,我在文档里找了,没看到。 raw 是这个问题的完美解决方案。
    • 原始标签现已弃用,取而代之的是“逐字”标签
    • {{ '{{' }} foo {{ '}}' }} 使用 twig 渲染 twig 渲染 twig 渲染 ....
    • 在 Twig2 中,标签现在是 {{ verbatim }}{{ endverbatim }}
    • 不,标签实际上是 {% verbatim %} 和 {% endverbatim %}
    【解决方案2】:

    Twig documentation 给出了两个建议。第一种就是简单的输出一个字符串:

    {{ '{{' }}
    

    否则,如果您想输出较长的部分(听起来像您这样做),您可以使用raw tag

    {% raw %}
        your mustache content here
    {% endraw %}
    

    【讨论】:

    • raw 现在是 verbatim。这在 Twig 版本 1.12 中发生了变化(在撰写本文时,3.x 很常见)。所以:{% verbatim %}your mustache content here{% endverbatim %}
    【解决方案3】:
    {% block body %} 
    <table class="table table-striped"> 
        {% for temp in data %} 
        <tr> 
            <td>{{temp.fname}}</td> 
            <td>{{temp.lname}}</td> 
        </tr> 
        {% endfor %}
    </table>
    {% endblock %} 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多