Bonjour
Quelle est la meilleure façon de faire quand il s'agit d'externaliser une fonction javascript dans un fichier et que cette fonction fait référence à des id de champ qui sont générés par twig ?
Je m'explique.
Je génère fans un fichier index.html.twig le formulaire suivant:
{{ form_row(form.customer) }}
Je veux réaliser une action jquery sur le champ généré.
Pas de problème si mon jquery se trouve dans index.html.twig
$('input#{{ form.customer.get('id') }}').click
par contre si je souhaite externaliser cette action Jquery dans un fichier file.js, comment faire proprement référence à l'id de mon champ ? (proprement = sans aller chercher l'id html généré par twig)
Je tiens une solution qui ne me satisfait pas:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| //AcmeFooBundle/Resources/public/js/myfile.js
function blah(field_id) {
$('input#'+field_id)
}
#AcmeFooBundle/Resources/views/index.html.twig
{{ form_row(form.customer) }}
<script>
blah('{{ form.customer.get('id') }}')
<script>
{% javascripts
'@AcmeFooBundle/Resources/public/js/*'
%}
<script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %} |
Cette solution fonctionne mais quelque part je souhaiterai ne pas avoir à passer les id twig en argument de ma fonction, mais y faire directement réfèrence dans le corps de la fonction. Cela suppose d'avoir un template twig de mon fichier javascript, mais là je ne sais plus faire.
Quelqu'un a une idée ?
Partager