Ich möchte Javascript in benutzerdefinierten Symfony 2 Formularfeldtyp Erweiterung verwenden. So habe ich Zweig Erweiterung Vorlage wie folgt aus:Symfony 2 benutzerdefiniertes Formular Feldtyp: Wie fügt man Javascript und CSS nur einmal hinzu?
{% block some_widget %}
<input ... />
<script src="some.js"></script>
<link href="some.css" />
{% endblock %}
Aber ich will nur diese Skript und Link-Tags haben, einmal in meinem HTML, idealerweise im Head-Tag, ohne Basisvorlage modifing. Ich habe versucht, Zweigblöcke zu erweitern, aber ich habe keinen Zugriff auf Aktionsvorlagenblöcke in der Formularvorlage. Oder vielleicht etwas in der Art:
{# widget tempate #}
{% block some_widget %}
<input ... />
{{ use_javascript('some.js') }}
{{ use_css('some.css') }}
{% endblock %}
{# main action template #}
...
<head>
{{ dump_javascripts() }}
{{ dump_css() }}
</head>
...
Wie geht das mit Symfony 2 Forms + Twig?
P.S. Entschuldigung für mein schlechtes Englisch.
Warum möchten Sie die Basisvorlage nicht ändern? Dies * ist * der Ort, an dem festgelegt wird, welche js \ css-Dateien importiert werden sollen. – tamir
Ich möchte ein selbstenthaltendes Formular-Widget-Erweiterungspaket erstellen und dieses Paket nur einmal in AppKernel.php aktivieren. Außerdem möchte ich js/css nicht enthalten, wenn das Widget in der aktuellen Seite nicht verwendet wird. –
Dies scheint eine fehlende Funktion in Symfony zu sein (bis jetzt). Vielleicht sollten wir von [django widget media] (https://docs.djangoproject.com/de/dev/topics/forms/media/#assets-as-a-static-definition), die einmal die Assets nur dann einbezieht, wenn die widget present –