13

我在 python 中使用 jinja2 作为我的模板引擎。

我想加入多个块的内容,并想在模板的末尾呈现它,就在标签之前。{ 它们是多个模板中代码中的各种 JavaScript 片段,我想将其移至文件末尾,我该怎么做?}

编辑 :

我想移动在子 jinja 模板中创建的所有内联 javascript。我想将它们移到页面底部。所以我在页面末尾的父模板中创建了一个块,并在子模板中使用它来编写 javascript。但是,可能有多个孩子,所以有多个 javascript 块,并且由于 jinja2 不支持多个块,我还有什么其他解决方案?-------- 我认为另一种选择是以不需要内联的方式创建 javascript 本身。

4

1 回答 1

22

我假设多个孩子是指从模板继承的模板继承自模板......从基本模板继承。如果是这种情况,除了添加更多 JavaScript 之外,您还需要javascript在每个模板中定义相同的块并调用所有子模板。super()调用super()打印父javascript块的输出,依此类推,沿着继承链。在此过程中,每个块都可以添加自己的代码。

所以你可以在每个模板中有这样的东西:

{% block javascript %}
    {{ super() }}

    function foo(x, y) {
        return x + y;
    }
{% endblock %}
于 2010-06-30T05:01:11.993 回答