Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Transferir objetos Thymeleaf para o Javascript

Estava desenvolvendo um projeto para praticar front end com javascript e me deparei com um problema... Estou utilizando spring e thymeleaf para colocar objetos numa página, mas gostaria de passar esses mesmos objetos para o javascript e tratá-los no código do front end, mantendo as boas práticas e não deixar o código JS na página HTML, é possível passar o objeto inteiro, isto é, com todos os campos para o javascript, que está em outro arquivo, através do thymeleaf?

1 resposta
solução!

Oi Renan,

Respondi algo parecido pro César aqui.

Em resumo, é possível armazenar os dados no HTML usando atributos data-* e resgatá-los no JavaScript depois.

No seu caso, você poderia transportar cada propriedade do seu objeto para um atributo data-* numa tag do HTML. Se forem muitas propriedades, talvez valha a pena serializar seu objeto para JSON e passar ele como valor de um attributo data-objeto no HTML. Você pegaria esse atributo lá no JavaScript e transformaria ele em um objeto do JavaScript.

Seria algo assim:

Lá no html pegamos uma string objetoJSON:

<div class="divObjeto" data-objeto="#{objetoJSON}">
</div>

No código JavaScript usando o DOM, acessamos o valor que armazenamos no atributo data-objeto e convertemos ele para um objeto do JS:

const $div= document.querySelector('.divObjeto')
const stringJSONDoHTML = $div.dataset.objeto

const objeto = JSON.parse(stringJSONDoHtml)

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software