Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.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
Javascript 将列表传递给js、thymeleaf、springboot_Javascript_Json_List_Thymeleaf_Modelandview - Fatal编程技术网

Javascript 将列表传递给js、thymeleaf、springboot

Javascript 将列表传递给js、thymeleaf、springboot,javascript,json,list,thymeleaf,modelandview,Javascript,Json,List,Thymeleaf,Modelandview,我想将一个列表从控制器传递到一个javascript文件,并在js文件中迭代它。 但我在js中只得到了“未定义” 我使用Thymeleaf模板,我的js文件与我的html分开 //控制器 List<Bean> list = new ArrayList<Bean>(); model.addAttribute("list", list); 我希望得到month和date的值,有人知道吗?不是将列表放入html元素,而是直接放入Javascript。像这样: <scri

我想将一个列表从控制器传递到一个javascript文件,并在js文件中迭代它。 但我在js中只得到了“未定义”

我使用Thymeleaf模板,我的js文件与我的html分开

//控制器

List<Bean> list = new ArrayList<Bean>();
model.addAttribute("list", list);

我希望得到month和date的值,有人知道吗?

不是将列表放入html元素,而是直接放入Javascript。像这样:

<script th:inline="javascript">
    var list = /*[[${list}]]*/ [];
</script>
<script src="/your_other_javascript_file.js"></script>

var list=/*[[${list}]*/[];

循环不工作的原因是
$('#list').val()不是数组,而是字符串。在字符串上循环不会达到预期效果。

没错。但是我想在一个独立的javascript文件(即src=“/your_other_javascript_file.js”)中循环列表,在这里我将用列表中的数据绘制一个图表。我不喜欢在html中绘制你不喜欢在html中绘制它。您正在
您的_other_javascript_file.js
中绘制它,这取决于在加载之前已经定义了变量“list”。如果您确实不想这样做,那么您必须使用
resolver.setTemplateMode(TemplateMode.JAVASCRIPT)设置一个新的TemplateResolvervar list=$('#list').val();
console.log("list: "+ list); 
//[Bean(month=201805, date=2018-05-02),Bean(month=201804, date=2018-05-03)], which is correct


for(var i in list) {
  console.log("date: "+ list[i].date);  //  I  got undefined
  console.log("month: "+ list[i].month);  // I  got undefined,too
}
<script th:inline="javascript">
    var list = /*[[${list}]]*/ [];
</script>
<script src="/your_other_javascript_file.js"></script>