Frage

Ich benutze jinja2 für meine Template-Engine in Python.

ich mag Inhalt mehrere Block beizutreten und möchte es am Ende der Vorlage machen, kurz vor dem Tag. {Sie sind verschiedener JavaScript-Schnipsel über den gesamten Code in mehrere Vorlage, die Ich mag würde bis zum Ende der Datei bewegen, wie es mich tun? }

edit:

Ich möchte alle meinen Inline-Javascript bewegen, die in den Kinder jinja-Vorlagen erstellt werden. Ich mag sie unten auf der Seite bewegen. so habe ich einen Block in der übergeordneten Vorlage am Ende der Seite erstellt und deren Verwendung in den Kindern Vorlage zu schreiben Javascript. aber kann es mehrere Kind sein, und so mehrere Javascript-Block, und als mehrere Block nicht in jinja2 unterstützt, was die anderen Lösung habe ich? -------- ein alternativ ich denke, ist Javascript selbst derart zu schaffen, dass es nicht inline sein muss.

War es hilfreich?

Lösung

Ich gehe davon aus, dass durch mehrere Kinder, meinen Sie, dass es Vorlagen aus Vorlagen erben aus Vorlagen erben ... von der Basisvorlage erben. Wenn das der Fall ist, müssen Sie den gleichen javascript Block in jeder Vorlage definieren, und rufen Sie super() in allen Kindern, zusätzlich zu Hinzufügen von mehr JavaScript. Der Aufruf super() druckt die Ausgabe des javascript Block der Eltern, und so weiter bis die Kette der Vererbung. Auf dem Weg dorthin kann jeder Block Code der eigenen hinzuzufügen.

So können Sie so etwas wie dies in jeder Vorlage haben könnten:

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

    function foo(x, y) {
        return x + y;
    }
{% endblock %}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top