我正在使用Thymeleaf + Datatables.js。
我想在javascript中对我的数据表应用默认排序,如下所示:
<script type="text/javascript" th:inline="javascript" class="init">
/*<![CDATA[*/
$(document).ready(function() {
$('#myTable').DataTable({
"order" : [[ 0, 'asc' ]]
});
});
/*]]>*/
</script>
但是,我得到了由Thymeleaf引起的以下异常:
org.thymeleaf.exceptions.TemplateProcessingException:无法解析 表达式:“0,'asc'”
所以即使我将我的js代码放入
/*<![CDATA[*/ ... /*]]>*/
Thymeleaf仍然希望将其解析为表达式。如何逃避双方括号?
答案 0 :(得分:2)
你可以将它移动到它自己的块中:
<script type="text/javascript" th:inline="none" class="init">
/*<![CDATA[*/
$(document).ready(function() {
$('#myTable').DataTable({
"order" : [[ 0, 'asc' ]]
});
});
/*]]>*/
</script>
<script type="text/javascript" th:inline="javascript" class="init">
/*<![CDATA[*/
// other javascript with thymeleaf variables in it goes here
/*]]>*/
</script>
您可以采用不同的方式格式化订单:
$('#myTable').DataTable({
"order" : [
[ 0, 'asc' ]
]
});
或
$('#myTable').DataTable({
"order" : [ [ 0, 'asc' ] ]
});
答案 1 :(得分:1)
从Thymeleaf 3开始,您还可以将属性th:inline="none"
添加到脚本标签(或DOM树中的其他任何标签,如果您想将其应用于所有子标签)。