避免来自Jinja2的包含jQuery模板的模糊胡子

前端之家收集整理的这篇文章主要介绍了避免来自Jinja2的包含jQuery模板的模糊胡子前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图插入 jQuery templatesJinja2模板。 Alas他们(在默认设置)使用胡子{{& }}分别表示表达式和文字

我把我的jQuery模板插入带有脚本标签的HTML,像这样:

<script type='text/x-jquery-template'>
    <div>The people are:
         {{ each people }} 
          ${$value}
         {{ /each }}
    </div>
</script>

如果上面是一个Jinja模板,但是,它阻止,因为Jinja试图解释每个作为一个字面量。

在这种情况下(我们有很多模板),改变Jinja2的变量的开始和结束分隔符是不实际的。此外,它混乱,降低互操作性,需要额外的培训。最好避免此选项。

所以我想到的解决这两个替代的事情是:

> Jinja2转义每个“{{‘和’}}”,我不知道如何做最好的(“{{”{{“}}`,也许,但是详细);
>更实际 – 也许是理想的 – 会告诉Jinja2不解析一段代码,可能通过jQuery扩展。

我会感谢的想法和反馈。谢谢你阅读。

解决方法

你可以使用{%raw%} {%endraw%}构造来缓解你逃脱的困境(直接从 Jinja2 docs)。

例:

<script type='text/x-jquery-template'>
    <div>The people are:
        {% raw %}<!-- Everything in here will be left untouched by Jinja2 -->

        {{ each people }} 
          ${$value}
        {{ /each }}

        {% endraw %}
    </div>
</script>

猜你在找的jQuery相关文章