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:
	
	| 12
 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