web-dev-qa-db-fra.com

Y compris la variable JavaScript à l'intérieur de Thymelleaf

Comment incluez-moi une variable JavaScript à l'intérieur de Thymeleaf pour vérifier une condition?

A essayé:

<div th:if="${myVariable == 5}">
 //some code
</div>

mais cela ne fonctionne pas.

Ce que vous essayez de faire ne fonctionnera pas, car Thymeleaf traite le modèle du côté serveur et les variables ont donc accès à ceux définies dans son modèle.

Si vous aviez myVariable dans le modèle sur lequel thymelleafe fonctionne, cela fonctionnerait. Si ce que vous voulez, c'est définir la valeur d'une variable JavaScript dans un modèle Thymeleaf, vous pouvez procéder comme suit:

<script th:inline="javascript">
/*<![CDATA[*/
    ...

    var myVariable= /*[[${myVariable}]]*/ 'value';

    ...
/*]]>*/
</script>

À l'intérieur du script, vous pouvez avoir une logique que vous souhaitez, y compris Masquer/Show, etc.

Vérifiez Ceci Partie de la documentation pour les détails du mode.

33
geoand

Avec Thymeleaf 3, le bloc CDATA devait être retiré pour référencer ma variable en ligne ou l'analyseur l'ignora complètement. Cette syntaxe a fonctionné avec succès pour moi sur la mise à niveau:

<script th:inline="javascript">
     var myVariable = [[${#vars.myVar}]];
     ...
</script>

Remarque: Si vous avez également référencé vos variables en tant que [$ {# ctx.variables.myvar}]], cela ne fonctionnera plus dans Thymeleaf 3 car CTX n'a ​​plus de variables nommées.

0
Taugenichts