在 Jinja2 模板中使用 include 语句传递变量

Vin*_*eph 5 javascript jinja2

我有一个包含以下 Jinja2 模板语言代码片段的 html 文件。

{% block head %}
    {{ super() }}
    {% with textarea="txtMessageContent" %}
        {% include "vvv/vvv/TinyMCE.html" %}
    {% endwith %}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

我试图将变量 textarea 传递给包含以下代码的 TinyMCE.html 模板。

{% block InitTinyMCE %}
<script src="https://x.x.x/x/js/jquery-2.1.0.min.js"></script>
<script type="text/javascript" src="/static/js/tinymce/tinymce.min.js"></script>
<script type="application/javascript">
alert(textarea);
    $(document).ready(function (textarea){
        tinymce.init({
            selector: textarea,
            menubar: true,
            plugins: "hr code preview",
            content_css:"https://x.x.x/x/css/backend-boostrap.css",
            remove_linebreaks: false,
            convert_newlines_to_brs: true
        });
    });
</script>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

当我加载页面时,我看到变量没有被传递。由于以下错误,我可以确认这一点。

文本区域未定义。

r-m*_*m-n 0

您需要在 Jinja 中的变量周围放置双花括号

{% block InitTinyMCE %}
<script src="https://x.x.x/x/js/jquery-2.1.0.min.js"></script>
<script type="text/javascript" src="/static/js/tinymce/tinymce.min.js"></script>
<script type="application/javascript">
    $(document).ready(function (){
        tinymce.init({
            selector: "{{ textarea }}",
            menubar: true,
            plugins: "hr code preview",
            content_css:"https://x.x.x/x/css/backend-boostrap.css",
            remove_linebreaks: false,
            convert_newlines_to_brs: true
        });
    });
</script>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)