Как сохранить результаты выполнения цикла Thymeleaf в Javascript переменной?

Как можно реализовать цикл Thymeleaf в JavaScript, чтобы сгенерировать представленный результат в теге `<script>`?
  • 10 мая 2024 г. 15:50
Ответы на вопрос 2
Чтобы сохранить результаты выполнения цикла Thymeleaf в JavaScript переменной, вы можете воспользоваться следующим способом:

1. В Thymeleaf:
```html
<div th:each="item : ${items}" th:text="${item}"></div>
```

2. В Javascript:
```javascript
var items = [];
document.querySelectorAll('[th\\:each="item : ${items}"]').forEach(function(element) {
    items.push(element.textContent);
});
```

Таким образом, вы сохраните результаты выполнения цикла Thymeleaf в массив `items` в JavaScript.

Чтобы реализовать цикл Thymeleaf в JavaScript и добавить результаты внутрь тега `<script>`, вы можете использовать следующий код:

1. В Thymeleaf:
```html
<div id="items" th:attr="data-items=${items}"></div>
```

2. В Javascript:
```javascript
var items = /*[[${items}]]*/[];
var scriptElement = document.createElement('script');
scriptElement.textContent = 'var items = ' + JSON.stringify(items) + ';';
document.getElementById('items').appendChild(scriptElement);
```

Таким образом, результаты цикла Thymeleaf будут сохранены в переменной `items` в JavaScript и добавлены внутрь тега `<script>`.
Или экранируйте внутренние кавычки, или используйте одинарные как внешние, или задавайте значение value без кавычек. Сейчас у вас невалидный JS
Похожие вопросы