Thymeleaf和javascript
我尝试使用Thymeleaf和javascript,javascript,java,thymeleaf,Javascript,Java,Thymeleaf,我尝试使用thymeleaf循环显示html模板: <th:block th:each="ticket : ${tickets}"> <div th:id="'ticket_' + ${ticket.ticketId}" th:include="${ticket.templateName}"></div> <div th:id="${ticket.ticketId}" th:if="${#strings.toString(ticket.t
thymeleaf
循环显示html
模板:
<th:block th:each="ticket : ${tickets}">
<div th:id="'ticket_' + ${ticket.ticketId}" th:include="${ticket.templateName}"></div>
<div th:id="${ticket.ticketId}" th:if="${#strings.toString(ticket.ticketStatus)} == 'CANCELED'" th:include="'canceled'"></div>
</th:block>
您可以很容易地跳过include部分来实现这一点。现在这些都在一个文件中。 您的脚本:
<script th:inline="javascript">
/*<![CDATA[*/
function yourFunction(id){
alert(id);
// Rest of your code.
}
/*]]>*/
</script>
/**/
在迭代中:
<div th:id="${ticket.ticketId}" th:if="${#strings.toString(ticket.ticketStatus)} == 'CANCELED'">
<script th:inline="javascript">
/*<![CDATA[*/
$(function() {
yourFunction([[${ticket.ticketId}]]);
});
/*]]>*/
</script>
</div>
/**/
您可以非常轻松地跳过包含部分来完成此操作。现在这些都在一个文件中。
您的脚本:
<script th:inline="javascript">
/*<![CDATA[*/
function yourFunction(id){
alert(id);
// Rest of your code.
}
/*]]>*/
</script>
/**/
在迭代中:
<div th:id="${ticket.ticketId}" th:if="${#strings.toString(ticket.ticketStatus)} == 'CANCELED'">
<script th:inline="javascript">
/*<![CDATA[*/
$(function() {
yourFunction([[${ticket.ticketId}]]);
});
/*]]>*/
</script>
</div>
/**/
您可以包含javascript部分吗?@Lukehey yes,已更新jQuery选择器”。idForScript
使用idForScript
类选择所有元素。在包装此选择的jQuery对象上调用parent
,将返回包装所包装集合的第一个元素的父级的jQuery对象-我不确定jQuery是否保证这将是哪一个,但似乎每次都会得到相同的一个。为什么不使用Thymeleaf有条件地包含html呢?这个问题还不清楚。你能包括你的javascript部分吗?@Lukehey是的,更新了jQuery选择器'.idForScript'
用idForScript
类选择所有元素。在包装此选择的jQuery对象上调用parent
,将返回包装所包装集合的第一个元素的父级的jQuery对象-我不确定jQuery是否保证这将是哪一个,但似乎每次都会得到相同的一个。为什么不使用Thymeleaf有条件地包含html呢?这个问题并不清楚,但这不是最好的方法。举个例子,他当然可以把第一个片段放到一个新的js文件中。但是,每次满足条件时都包含一个新的HTML文件也不太实际。源代码中的一个答案是不要重复你自己,这正是OP的代码所做的。但这不是最好的方法。举个例子,他当然可以把第一个片段放到一个新的js文件中。但是,每次满足条件时都包含一个新的HTML文件也不太实际。源代码中的一个答案是不要重复自己,这正是OP的代码所做的。