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

时间:2016-01-21 10:47:53

标签: javascript jinja2

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

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

我正在尝试将变量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 %}

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

textarea未定义。

1 个答案:

答案 0 :(得分: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 %}