javascript - 使用 Thymeleaf 传入的 JavaScript 变量的调用方法
问题描述
我正在使用 Thymeleaf 将包含地址的 ArrayList 对象从我的控制器传递到 JavaScript 视图。我正在尝试遍历此列表并向 google maps geocding api 发送请求。我的问题是在我的循环中 .length 或 .size() 不适用于此变量。我确实知道对象正在传递给视图,但我不知道为什么其余代码没有运行。这是我实际的 JavaScript 代码。
<script th:inline="javascript">
/*<![CDATA[*/
//list of locations passed from controller to view using thymeleaf
var locations = [[${locations}]];
// .length not working on variable
console.log(locations.size());
var size = locations.length;
//loop through user locations .length and .size() not working
for(var i=0; i < locations.length; i++){
console.log(locations[i])
//make call to api using location
这是我检查代码时看到的
/*<![CDATA[*/
//list of locations passed from controller to view using thymeleaf
var locations = ["12 Main St bonne terre mo 63628"," 100 division st bonne terre mo 63628","4345 fyler ave st louis mo 63116","12 Main St bonne terre mo 63628"];
// .length method not running on variable
console.log(locations.size());
var size = locations.length;
//loop through user locations .length method not working
for(var i=0; i < locations.length; i++){
console.log(locations[i])
//make call to api to get activity.location coordinates
$.ajax({ type: "GET", url: " https://maps.googleapis.com/maps/api/geocode/json?address= " +
我可以看到我的地址列表正在传入,但不知道为什么我无法获得循环列表的长度。
我努力了
for(var i=0; i < [[${locations.size()}]]; i++){
console.log([[${locations[i]}]])
但我没有被认出,也没有从这个列表中拉出任何东西。这是页面检查。
//loop through user locations .length and .size() not working
for(var i=0; i < 4; i++){
console.log(
解决方案
您不能混合使用 Javascript 和 Thymeleaf 变量。例如,在此代码中:
for(var i=0; i < [[${locations.size()}]]; i++){
console.log([[${locations[i]}]])
您i
在 javascript 中定义并期望 Thymeleaf 知道i
下一行代码中的含义:console.log([[${locations[i]}]])
. i
未定义,因此不会打印任何内容。由于此时您已经有了位置列表:
var locations = [[${locations}]];
从那时起,您应该只处理 javascript 变量。此代码将起作用:
<script th:inline="javascript">
/*<![CDATA[*/
var locations = /*[[${locations}]]*/ [];
for(var i=0; i < locations.length; i++){
console.log(locations[i]);
}
/*]]>*/
</script>
推荐阅读
- php - 从感谢页面(WooCommece)仅发送一次自定义订单注释
- django - 将 kwargs 从 CBV 传递到 Django 中的 Form
- c - 如何在播放动画时停止不断闪烁?
- arrays - 为什么直接在 ArraySlice 上调用变异方法不会触发写时复制?
- git - 如何使用 git diff -G 排除某些模式
- json - Elasticsearch - 如何刷新 http:// 中的数据
:port/heartbeat-*/_search?pretty - javascript - Moment.js 显示到 DOM
- hyperledger-fabric - 哪个好的consesus引擎Raft或Kafka
- java - 如何检查文本文件中是否存在单词
- hook - 如何从 MediaWiki SearchAfterNoDirectMatch 挂钩返回文本?