javascript - Thymeleaf onclick 意外的标识符 javascript
问题描述
我无法弄清楚如何让这个 Thymeleaf 代码正常工作。我收到 th:onclick 函数的意外标识符:
th:onclick="'addBadge('badgeListTwy', \'' + ${taxiway.getId()} + '\', \'' + ${taxiway.getName()} + '\');'"
这是我尝试使用 th:each 为按钮填充的下拉列表的一部分
<ul class="dropdown-menu" aria-labelledby="dropdownMenuLink">
<li th:each="taxiway : ${taxiways}">
<a class="dropdown-item" href="#" th:onclick="'addBadge('badgeListTwy', \'' + ${taxiway.getId()} + '\', \'' + ${taxiway.getName()} + '\');'"><span th:text="${taxiway.getName()}"></span></a>
</li>
</ul>
这给了我一个“未捕获的语法错误:意外的标识符”错误
解决方案
最好的方法是将参数存储在数据属性中,如下所示:
<ul class="dropdown-menu" aria-labelledby="dropdownMenuLink">
<li th:each="taxiway : ${taxiways}">
<a class="dropdown-item" href="#"
th:data-id="${taxiway.id}"
th:data-name="${taxiway.name}"
onclick="addBadge('badgeListTwy', this.getAttribute('data-id'), this.getAttribute('data-name'));"><span th:text="${taxiway.getName()}"></span></a>
</li>
</ul>
它简化了引用,并消除了某些 JavaScript 漏洞。(请注意,我使用onclick
的是th:onclick
.)
话虽如此,原始表达式可能不起作用,因为您没有逃避引号'badgeListTwy'
推荐阅读
- xsd - 在 XSD 中创建动态属性
- c++ - “Clang 中的 C++ 支持”页面中的 SVN 是什么意思?
- asp.net-mvc-viewmodel - MVC 视图中的 if else 条件
- python - 抓取不断更新的网页
- image - 有没有办法直接从字节创建光栅图像以用于画布(不显示)显示?
- google-cloud-platform - 循环遍历许多文件时如何增加gcsfuse吞吐量?
- c# - AAD 身份验证和 cookie 名称?
- r - r 在绘制日内数据时如何从 x 轴中删除工作日的非工作时间(以及周末和节假日)
- python - scikit k-means:查找属于特定质心生成集群的数据点
- bootstrap-4 - 如何在 Bootstrap 媒体对象中使用 fontawesome 堆叠图标