假设您有一个 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 控制器提供的模块属性。如果我将 javascript 移到 html 文件中(内联 javascript);在 html 文件中,类似于:
<script>
var showtext = "[[${readingListObject.course.Id}]]";
console.log(showtext);
</script>
没有问题,但是如果我将脚本移出到单独的外部javascript文件中,外部javascript如何访问html控制器提供的模块属性?有没有一种方法可以让javascript控制器与html控制器交换模块属性?
我用
Spring Boot 1.5.10,Thymeleaf 3.0.9。
您可以使用内部声明的变量<script></script>
外部 js 文件中的标记(内联)。只需在 html 中引用外部 js 文件
<script>
var showtext = "[[${readingListObject.course.Id}]]";
</script>
然后在您的外部脚本中您可以访问showtext
多变的。因此,您可以在 html 中使用内联 js 来仅传递属性,然后您可以使用变量在外部 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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)