Impossible de passer les variables jinja2 dans l'extrait javascript
Comment puis-je transmettre des données jinja2 en javascript.
J'ai une url REST Flask comme /logs/<test_case_name>
J'essaie d'utiliser .getJSON()
pour interroger l'URL ci-dessus et je voudrais donc passer les données jinja2 qui ont le testcasename à la fonction .getJSON
.
Exemple de code:
<script type="text/javascript">
alert({{name}});
</script>
Ça ne marche pas. Toutes les suggestions s'il vous plaît?
3 réponses
Autre que l'encapsulation de la variable dans une chaîne, une alternative est jquery for profit:
C'est généralement une mauvaise idée de mélanger le langage de modèle avec javascript. Une alternative serait d'utiliser html comme proxy-stocker le nom dans un élément comme ceci
<meta id="my-data" data-name="{{name}}" data-other="{{other}}">
Puis dans le javascript faire
var djangoData = $('#my-data').data();
Cela a un avantage dans:
- javascript n'est plus lié à la .page html
- jquery contraint implicitement les données
C'est la façon dont je l'ai fait
Mon élément html
<!--Proxy Tag for playlist data-->
<meta id="my_playlist_data" data-playlist="{{ playlist }}">
Mon élément de script
// use Jquery to get data from proxy Html element
var playlist_data = $('#my_playlist_data').data("playlist");
Voir .data () documentation pour plus