如何在thymeleaf中包含一个JavaScript变量来检查病情?
<div th:if="${myVariable == 5}">
//some code
</div>
但它不起作用。
答案 0 :(得分:33)
您尝试做的事情不会起作用,因为Thymeleaf在服务器端处理模板,因此它可以访问的变量是在其模型中定义的变量。
如果Thymeleaf正在运行的模型中有myVariable
,那就可以了。
如果你想要的是在Thymeleaf模板中设置Javascript变量的值,你可以执行以下操作:
<script th:inline="javascript">
/*<![CDATA[*/
...
var myVariable= /*[[${myVariable}]]*/ 'value';
...
/*]]>*/
</script>
在脚本中你可以拥有任何你想要的逻辑,包括隐藏/显示等。
查看文档的this部分,了解模式详情。
答案 1 :(得分:0)
对于百里香3,必须删除CDATA块以引用我的变量内联,否则解析器将其完全忽略。此语法对我在升级后成功起作用:
<script th:inline="javascript">
var myVariable = [[${#vars.myVar}]];
...
</script>
注意:如果您还以[[$ {#ctx.variables.myVar}]]引用变量,则它在百里香3中将不再起作用,因为ctx不再具有名为变量的变量。
答案 2 :(得分:-1)
<script>
// <![CDATA[
...Your script, here
// ]]>
</script>