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?

23
demandé sur simeg 2014-02-07 15:02:30

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
35
répondu rikAtee 2014-02-08 21:01:41

Essayez avec des guillemets:

alert("{{name}}");
45
répondu ndpu 2014-02-07 12:05:18

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

0
répondu Suraj Nath 2017-04-18 10:58:52