Thymeleaf外部JavaScript文件共享模块与HTML文件属性(Thymeleaf ext

2019-09-29 09:01发布

比方说,你有一个HTML5模板文件,其中包括一个外部JavaScript文件。 例如:

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
  <title>Reading List</title>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
  <link rel="stylesheet" type="text/css" media="all"
        href="/css/style.css" th:href="@{/css/style.css}"/>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
  <script th:src="@{|/js/selectionCreation.js?v=${#dates.createNow()}|}"></script>

有两个控制器 - 控制器HTML和javascript控制器,HTML控制器提供渲染HTML模板模块属性,javascript的控制器设提供模块属性的JavaScript。 然而,JavaScript的也需要使用由HTML控制器提供的模块属性。 如果我感动的HTML文件中的JavaScript(内嵌JavaScript); 在HTML文件中,是这样的:

<script>
    var showtext = "[[${readingListObject.course.Id}]]";
    console.log(showtext);
</script>

这是没有问题的,但如果我将剧本出来单独的外部JavaScript文件,如何做的JavaScript访问由HTML控制器提供的模块属性外? 是否有办法的JavaScript控制器交换模块与HTML控制器属性? 我使用Spring引导1.5.10,Thymeleaf 3.0.9。

Answer 1:

您可以使用的内部声明的变量<script></script>在外部js文件标签(内联)。 只是指在你的HTML外部JS文件

<script>
var showtext = "[[${readingListObject.course.Id}]]";
</script>

然后在你的外部脚本可以访问showtext变量。 所以,你可以使用内联JS在HTML中,只通过属性,那么你可以做你的逻辑使用变量外部JS里面。

更新: -

    <script>
        //Your in line code here, declare var and assign your   model   attribute
 </script>

然后,只需这条线之下,把你的链接到外部JS文件。

<script th:src="source to your external JS">
</script> 


文章来源: Thymeleaf external javascript file shares the module attributes with html file