Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Thymeleaf和javascript_Javascript_Java_Thymeleaf - Fatal编程技术网

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的代码所做的。