2013-07-16 17 views
4

J'utilise Assetic pour inclure mes scripts et j'ai besoin de passer les paramètres régionaux actuels. Comment ferais-je cela?Comment utiliser une variable Twig dans la balise javascript d'Assetics?

{% javascripts 
    '@MyBundle/Resources/public/components/moment/moment.js' 
    '@MyBundle/Resources/public/components/moment/lang/' ~ app.request.locale ~ '.js' 
%} 

concaténation de chaîne ne fonctionne pas et jette jeton inattendu « opérateur » de valeur « ~ »

Répondre

3

Vous pouvez utiliser les variables de assetic comme décrit dans Ryan Weaver's answer here. La fonctionnalité est en quelque sorte cassée mais fonctionnera dans votre cas lorsque vous utilisez les paramètres régionaux en tant que variables.

La réponse est que seules deux variables fonctionnent par défaut (locale et env, et leurs valeurs sont preconfigued dans Symfony. https://github.com/symfony/AsseticBundle/blob/master/DefaultValueSupplier.php#L31

config_dev.yml

assetic: 
    use_controller: false 

config.yml

Vous devez également définir votre assetic.variables.locale [...] au total des combinaisons possibles de votre variable:

assetic: 
    variables: 
     locale: [en,fr,de] 

... puis les utiliser à l'intérieur des javascripts après avoir appelé assetic:dump.

modèle

{% javascripts 
    'bundles/my/components/{locale}.js' 
%} 
+0

Merci! Jamais pensé, ce serait compliqué. Fondamentalement cela fonctionne, mais malheureusement, momentjs n'a pas de locale pour "en" (comme mon application), juste pour "en-GB" et "en-US". Donc, à la fin, je ne pouvais pas utiliser cette solution de contournement. – acme

Questions connexes