пройти список рассылки JS, Thimeleaf, Springboot - PullRequest
0 голосов
/ 23 мая 2018

Я хочу передать List из контроллера в файл javascript и повторить его в файле js.Но я получил только «undefined» в js.

Я использую шаблон Thymeleaf, и мой файл js отделен от моего html.

// controller

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

// html

<input id="list" type="hidden"  th:value="${list}"/>

// javascript

var 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
}

Я ожидаю получить значение месяца и даты, у кого-нибудь есть идеи?

1 Ответ

0 голосов
/ 23 мая 2018

Вместо помещения списка в HTML-элемент, просто поместите его прямо в Javascript.Например:

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

Причина, по которой ваш цикл не работает, заключается в том, что $('#list').val(); - это не массив, а строка.Цикл по строке не будет делать то, что вы ожидаете.

...