如何将代码放入外部javascript文件中?

如何将代码放入外部javascript文件中?,javascript,thymeleaf,Javascript,Thymeleaf,我有一个外部javascript文件,该文件在我的html文件中声明,带有以下标记: <script type="text/javascript" th:inline="javascript" th:src="@{/js/gp-aprobarDocumento.js}"></script> 因此,当执行该功能时,窗口警报显示为空 有人知道如何在外部javascript中使用thymeleaf表达式吗?我想你想做什么是不可能的,我有一个类似的问题(这里:) 但在您的情况下

我有一个外部javascript文件,该文件在我的html文件中声明,带有以下标记:

<script type="text/javascript" th:inline="javascript" th:src="@{/js/gp-aprobarDocumento.js}"></script>
因此,当执行该功能时,窗口警报显示为空


有人知道如何在外部javascript中使用thymeleaf表达式吗?

我想你想做什么是不可能的,我有一个类似的问题(这里:)

但在您的情况下,您可以这样做:

在html中:

<script type="text/javascript" th:inline="javascript" >
    var alertVariable = ${link.menu.page-certificacion-qa-bandeja-entrada};
</script>

我知道这不是你真正想要的,但我有同样的问题,我认为没有任何解决办法。

通过DOM:

如果希望从Thymeleaf对象创建JS变量,可以将该对象添加到DOM中。我最近做了一个项目,将查询结果返回给List类型的Java对象,并通过Spring控制器将该对象添加到DOM中

  //Deliver Results Array to the DOM
  model.addAttribute("myResult", myResult);
将此对象添加到ThymalLeaf模板模型后,您可以通过以下方式在HTML中访问它:

  th:text="${myResult}"
您也可以在Javascript中引用它,只需从DOM中引用模型对象的名称。我无法让变量填充到单独的JS文件中,而不使其在HTML文件的作用域中全局化,具体如下:

<script th:inline="javascript">
    var myResult = [[${myResult}]];
</script>

所讨论的对象必须能够从DOM中引用。使用AJAX和创建通过HTTP向客户机返回数据的控制器可能会有更好的性能。似乎thymeleaf 3还有其他解决方案:


希望这有帮助

这对我很有效。在我的
index.html
中:

<script th:inline="javascript">
    /* variable used by index.js */
    var referenceId = [[${referenceId}]];
</script>
<script type="text/javascript" th:src="@{/js/index.js}">
</script>
希望这有帮助。

当然可以

您不能将Thymeleaf模板代码放入外部JavaScript文件中,但可以使用html中的模板片段将JavaScript代码放入html模板中的一对标记中

/template
文件夹中创建一个新的HTML文件“gp aprobarDocumento.HTML”,将函数放入脚本中,并将
/**/
替换为


ventanaAprobacion=功能(td)
{
IDENTERGABLE=$(td).attr(“数据行id”);
idVersion=$(td.attr(“数据行版本”);
警报(“la siguiente viene con el texto dle properties”);
警报(“[${link.menu.page certificacion qa bandeja entrada}]]”;
$(函数(){
$(“#对话框一个文档”)。对话框(“打开”);
});
}
并在html文件中添加一个
th:replace
标记


<script th:inline="javascript">
    var myResult = [[${myResult}]];
</script>
  $(function(){

  //Get Thymeleaf DOM Object
  console.log(myResult);
  });
<script th:inline="javascript">
    /* variable used by index.js */
    var referenceId = [[${referenceId}]];
</script>
<script type="text/javascript" th:src="@{/js/index.js}">
</script>
function doSomething() {        
    $.ajax({
        type: 'GET',
        url: '/api/' + referenceId ,
        contentType: 'application/json',
        beforeSend: beforeSend
    })
}