在 thymeleaf 中包含 JavaScript 变量
Posted
技术标签:
【中文标题】在 thymeleaf 中包含 JavaScript 变量【英文标题】:Including JavaScript variable inside thymeleaf 【发布时间】:2014-04-29 18:53:21 【问题描述】:如何以检查条件?
试过了:
<div th:if="$myVariable == 5">
//some code
</div>
但它不起作用。
【问题讨论】:
【参考方案1】:您尝试执行的操作不起作用,因为 Thymeleaf 在服务器端处理模板,因此它可以访问的变量是在其模型中定义的变量。
如果您在运行 Thymeleaf 的模型中有 myVariable
,它会起作用。
如果您想要在 Thymeleaf 模板中设置 javascript 变量的值,您可以执行以下操作:
<script th:inline="javascript">
/*<![CDATA[*/
...
var myVariable= /*[[$myVariable]]*/ 'value';
...
/*]]>*/
</script>
在脚本中你可以有任何你想要的逻辑,包括隐藏/显示等。
查看this 部分文档以了解模式详细信息。
【讨论】:
【参考方案2】:使用 thymeleaf 3,必须删除 CDATA 块以引用我的内联变量,否则解析器会完全忽略它。此语法对我升级后成功运行:
<script th:inline="javascript">
var myVariable = [[$#vars.myVar]];
...
</script>
注意:如果您还将变量引用为 [[$#ctx.variables.myVar]],它将不再在 thymeleaf 3 中工作,因为 ctx 不再具有名为 variables 的变量。
【讨论】:
【参考方案3】:<script>
// <![CDATA[
...Your script, here
// ]]>
</script>
【讨论】:
以上是关于在 thymeleaf 中包含 JavaScript 变量的主要内容,如果未能解决你的问题,请参考以下文章
Thymeleaf 模板 - 有没有办法装饰模板而不是包含模板片段?
尝试通过 Spring MVC 和 Thymeleaf 使用 React/Ajax 调用
CSS 文件找不到 thymeleaf Spring Boot