Javascript 未捕获类型错误:无法读取属性';重新加载';未定义的
我在SpringBoot应用程序的Thymeleaf模板上使用Datatables定义了DatatableJavascript 未捕获类型错误:无法读取属性';重新加载';未定义的,javascript,jquery,datatables,Javascript,Jquery,Datatables,我在SpringBoot应用程序的Thymeleaf模板上使用Datatables定义了Datatable <script th:inline="javascript"> /*<![CDATA[*/ $(document).ready(function() { var table = $('#workerEventTable').dataTable( { order: [[ 0, "desc" ]], select: true,
<script th:inline="javascript">
/*<![CDATA[*/
$(document).ready(function() {
var table = $('#workerEventTable').dataTable( {
order: [[ 0, "desc" ]],
select: true,
bLengthChange: false,
stateSave: true,
pageLength: 20,
ajax: 'http://127.0.0.1:1234/acerinox/api/workerevent/datatableList',
"columns": [
{ data: 'id' },
{ data: 'deviceId' },
{ data: 'companyName' },
{ data: 'description' },
{ data: 'battery' },
{ data: 'dateTime' },
{ data: 'signal' },
{ data: 'data' },
{ data: 'alarm' }
]
});
setInterval( function () {
table.ajax.reload( null, false ); // user paging is not reset on reload
}, 1000 );
table.on('select.dt deselect.dt', function() {
localStorage.setItem( 'DataTables_selected', table.rows( { selected: true }).toArray() )
})
} );
/*]]>*/
</script>
以下是我在模板中使用的所有导入:
<script th:src="@{/webjars/jquery/3.3.1/jquery.min.js}"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js" ></script>
<script src="https://cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js"></script>
$(“#workerEventTable”)。dataTable(…)
不返回具有.ajax
属性的对象。如果您想在ajax调用完成后执行某些操作,可以使用以下方法:
$('#example').dataTable( {
"ajax": function (data, callback, settings) {
callback(
dostuff();
);
}
});
查看。问题在于
dataTable()
返回的是jQuery对象,而不是Datatables API。您需要使用DataTable()
,请注意大写字母D。第一个解释了这一点 是否有文档表明dataTable
的返回值是具有ajax
属性的对象?因为它显然不是…向代码中添加console.log(table)
以查看table
的实际属性是什么。您还可以添加调试器代码>位于失败行上方,检查表
对象,悬停在该对象上方,钻取属性。问题是dataTable()
返回的是jQuery对象,而不是Datatables API。您需要使用DataTable()
代替,请注意大写字母D
。第一个解释了这一点。@KThorngren,请转换为答案。它起作用了!
$('#example').dataTable( {
"ajax": function (data, callback, settings) {
callback(
dostuff();
);
}
});