How can i pass {{app.user}} into Javascript ?
for now I do a block like;
<script type="text/javascript">
var app_name = '{{ app_name }}';
var app_url= '{{ app_url }}';
var app_description= '{{ app_description }}';
var app_email= '{{ app_email }}';
var app_title= '{{ app_title }}';
var app_dominio= '{{ app_dominio }}';
var env = '{{ app.environment }}';
</script>
where these parameters are set in config.yml
I don't understand what's exactly your problem with the solution you choose, it should work well with {{ app.user }} except that app.user is an object, so you should have a toArray function into your user and call :
Or call each parameter of the user like {{ app.user.id }}
You should use json_encode for your variables above, if you have a quote into one of your string it will break your javascript.
Example for profile:
The accepted solution doesn't work (anymore ?) because of twig autoescaping the outputs, changing all the JSON
"
with"
;.Equivalent would now have to use the
raw
filter:That being said, directly printing the raw JSON into the javascript may cause some problems, has in this configuration:
The
</script>
tag in the JSON would be interpreted by the HTML parser, resulting in a broken script.The truly correct way to do this would rather be to print the JSON as an escaped string, and then parse it within the js script:
Try this:
with additional apostrophy
Use an attribute or any tag
example:
<span profile="{{ profile.nickname }}"></span>