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:
Je veux réaliser une action jquery sur le champ généré.Code:{{ form_row(form.customer) }}
Pas de problème si mon jquery se trouve dans index.html.twig
Code:$('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:
Code:
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 ?