如何在树枝模板中包含已解释和未解释文本的混合

How to include mix of interpreted and uninterpreted text in twig template

本文关键字:解释 未解释 文本 混合 包含      更新时间:2023-09-26

我正在使用twig和Symfony2框架。我还使用嵌入在HTML中的胡须模板进行客户端渲染(在javascript中)。

在我的Symfony项目中,我正在用其他树枝模板的砖块构建树枝模板。使用"包含"功能可以轻松做到这一点。

当我想在树枝模板中包含一些胡须模板时,我可以使用"源"功能,该功能相当于整个模板的"逐字"功能。

当我想混合解释和未解释的文本时,会出现我的问题。

例如,我希望解释路径,但我不希望解释胡须标记。

my_twig_template.html.树枝

<body> 
    blablabla
    {{ source('my_mixed_template.html.twig') }}
</body>

my_mixed_template.html.树枝

<script type="x-tmpl-mustache" id="my-mixed-template">
    {{ path('path_to_be_interpreted_by_twig') }}
    {{mustache_var_not_to_be_interpreted_by_twig}}    
</script>

任何线索如何做到这一点?

最后我自己找到了解决方案。

在主树枝模板中:

{% include 'my_mustache_template.html.twig' %}

在树枝模板中嵌入胡须模板:

{% verbatim %}
    <script type="x-tmpl-mustache" id="my-id">
        {{ mustache_variable }}
        {% endverbatim %} {{ twig_variable }} {% verbatim %}
        {{ another_mustache_variable }}
    </script>
{% endverbatim %}
{% endverbatim %} {{ twig_variable }}

{% verbatim %} 序列允许 twig 解释器将 twig 变量替换为其实际值。