Incapables de passer jinja2 variables dans l'extrait de code javascript
Comment puis-je passer jinja2 de données en javascript.
J'ai un Flacon RESTE de l'url comme /logs/<test_case_name>
Je suis en train d'utiliser .getJSON()
à la requête de l'URL ci-dessus et donc aurait envie de passer à la jinja2 de données qui a le testcasename à .getJSON
fonction.
exemple de code:
<script type="text/javascript">
alert({{name}});
</script>
Il ne fonctionne pas.
Toutes les suggestions s'il vous plaît?
{{ name|safe }}
devrait fonctionner- il force de travail 🙁
- ses généralement une mauvaise idée de mélanger du langage de template avec javascript. Une alternative serait d'utiliser du code html comme un proxy - stocker le nom d'un élément comme <meta id="mon-données" data-name="{{nom}}" data-autres="{{autres}}">, puis dans le javascript ne djangoData = $('#mon-data').de données();
Vous devez vous connecter pour publier un commentaire.
autres que l'encapsulation de la variable dans une chaîne de caractères, un autre est jquery pour les bénéfices:
son généralement une mauvaise idée de mélanger du langage de template avec javascript. Une alternative serait d'utiliser du code html comme un proxy - stocker le nom d'un élément comme
puis dans le javascript ne
cela a un avantage dans:
data-name
une chaîne de caractères arbitraire, ou faut-il avoir pour êtredata-name
? Ou tout simplement de démarrer avecdata-
? Où est laother
variable viennent?<script type=text/javascript> doSomethingWith({{ user.username|tojson|safe }}); </script>
Essayer avec des guillemets:
name
contient des sauts de ligne comme '\n'. Il jette un javascript erreur de syntaxe.Je sais que c'est un peu vieux sujet, mais puisqu'il attire beaucoup de vues je suppose que certaines personnes sont toujours à la recherche d'une réponse.
Voici la façon la plus simple de le faire:
Elle sera "analyser" ce " nom " est et de l'afficher correctement:
https://sopython.com/canon/93/render-string-in-jinja-to-javascript-variable/
C'est la façon dont je l'ai fait
Mon Élément html
Mon script élément
Voir .de données() documenttation pour plus d'