Javascript 无法解析为表达式,该表达式定义了Thymeleaf中的DataTable
我有一个基本的SpringBoot 2.0.4.0版本应用程序。使用Spring初始值设定项、JPA、嵌入式Tomcat、Thymeleaf模板引擎,并将包作为可执行JAR文件 我在模板中有datatable的这个定义Javascript 无法解析为表达式,该表达式定义了Thymeleaf中的DataTable,javascript,jquery,html,datatables,thymeleaf,Javascript,Jquery,Html,Datatables,Thymeleaf,我有一个基本的SpringBoot 2.0.4.0版本应用程序。使用Spring初始值设定项、JPA、嵌入式Tomcat、Thymeleaf模板引擎,并将包作为可执行JAR文件 我在模板中有datatable的这个定义 <script th:inline="javascript"> /*<![CDATA[*/ $.fn.dataTable.ext.errMode = 'throw'; var ajax
<script th:inline="javascript">
/*<![CDATA[*/
$.fn.dataTable.ext.errMode = 'throw';
var ajaxUrl = /*[[@{${ajaxUrl}}]]*/ "";
var table = $('#smsEventTable').DataTable( {
order: [[ 0, "desc" ]],
select: true,
bLengthChange: false,
stateSave: true,
pageLength: 20,
ajax: ajaxUrl,
"columns": [
{ data: 'id' },
{ data: 'smsId' },
{ data: 'companyName' },
{ data: 'description' },
{ data: 'battery', className: 'col_battery' },
{ data: 'dateTime' },
{ data: 'signal' },
{ data: 'data' },
{ data: 'alarm' }
]
});
/*]]>*/
</script>
这里的问题是这个表达式:
顺序:[[0,“desc”]],
。因为这个表达式有两个括号([[
和]
),所以Thymeleaf试图将它作为一个函数来计算。解决这一问题的最简单方法是通过拆分括号来改变格式:
order: [ [0, "desc"] ],
或
您还可以将JavaScript分成两个块(在第二个块中禁用内联),如下所示:
<script th:inline="javascript">
var ajaxUrl = /*[[@{${ajaxUrl}}]]*/ "";
</script>
<script th:inline="none">
/*<![CDATA[*/
$.fn.dataTable.ext.errMode = 'throw';
var table = $('#smsEventTable').DataTable({
order: [[0, "desc"]],
select: true,
bLengthChange: false,
stateSave: true,
pageLength: 20,
ajax: ajaxUrl,
"columns": [
{data: 'id'},
{data: 'smsId'},
{data: 'companyName'},
{data: 'description'},
{data: 'battery', className: 'col_battery'},
{data: 'dateTime'},
{data: 'signal'},
{data: 'data'},
{data: 'alarm'}
]
});
/*]]>*/
</script>
var ajaxUrl=/*[[@{${ajaxUrl}]*/';
/**/
按如下方式断开方括号
order: [
[0, "desc"]
],
这是JavaScript代码。你在节点中有这个吗?它对我有用:)
<script th:inline="javascript">
var ajaxUrl = /*[[@{${ajaxUrl}}]]*/ "";
</script>
<script th:inline="none">
/*<![CDATA[*/
$.fn.dataTable.ext.errMode = 'throw';
var table = $('#smsEventTable').DataTable({
order: [[0, "desc"]],
select: true,
bLengthChange: false,
stateSave: true,
pageLength: 20,
ajax: ajaxUrl,
"columns": [
{data: 'id'},
{data: 'smsId'},
{data: 'companyName'},
{data: 'description'},
{data: 'battery', className: 'col_battery'},
{data: 'dateTime'},
{data: 'signal'},
{data: 'data'},
{data: 'alarm'}
]
});
/*]]>*/
</script>
order: [
[0, "desc"]
],