Thymeleaf:传递javascript参数

Nuñ*_*ada 5 thymeleaf spring-boot

我有一个基本的SpringBoot应用程序.使用Spring Initializer,嵌入式Tomcat,Thymeleaf模板引擎和包作为可执行的JAR文件.我想将POJO的属性传递给javascript函数:

   <tr th:each="company: ${companies}" >                                                
         <td class="col_actions">
           <a th:href="@{/company/edit/{id}(id=${company.id})}" style="color:#808080; margin-right: 10px;">
             <i class="fa fa-pencil-square-o" aria-hidden="true"></i>
           </a>
           <a href="#" style="color:#808080;  text-align: center;" onclick="javascript:confirmDelete ({id}(id=${company.id}));">
              <i class="fa fa-times" aria-hidden="true" ></i>
            </a>
         </td>
   </tr>
Run Code Online (Sandbox Code Playgroud)

但是我收到了一个错误: Uncaught SyntaxError: missing ) after argument list

Jam*_* H. 9

问题来自锚,所以如果confirmDelete()函数需要字符串id ,请尝试这个

th:onclick="'javascript:confirmDelete(\'' + ${company.id} + '\');'"
Run Code Online (Sandbox Code Playgroud)

如果它需要一个数字ID

th:onclick="'javascript:confirmDelete(' + ${company.id} + ');'"
Run Code Online (Sandbox Code Playgroud)


mak*_*son 5

其它的办法 - th:onclick="|confirmDelete('${company.id}')|"

或者,如果您想在'_'使用中发送多个参数 th:onclick="|confirmDelete('${type}_${company.id}')|"


小智 5

这对我有用,使用起来简单明了[[]]

使用链接:

<a href="#" id="editUserButton" th:onclick="editUser([[${user.getId}]])">Edit</a>
Run Code Online (Sandbox Code Playgroud)

使用按钮:

<button type="button" id="editUserButton" class="btn btn-primary"  th:onclick="editUser([[${user.getId}]])">Edit</button>
Run Code Online (Sandbox Code Playgroud)

传递多个参数:

<button type="button" id="editUserButton" class="btn btn-primary" th:onclick="editUser([[${user.getId}]],[[${user.getLastName}]])">Edit</button>
Run Code Online (Sandbox Code Playgroud)