Estoy haciendo una aplicación web con Grails. Tengo una lista con los datos que deben incluirse en JavaScript para realizar alguna carga dinámica en la lista desplegable <select>
. Básicamente, recibo una lista de dos niveles del servidor, luego el primer nivel se presenta en un buzón desplegable. Cuando el usuario selecciona una opción, la lista asociada a esta opción se presenta en otro cuadro desplegable.Pasa correctamente una lista de Groovy al código de Javascript en GSP
El (simplificado) código de la página SGP para la función de JavaScript es la siguiente
function selecTipe() {
var types = ${typeList}
alert('List of types ' + types)
El problema es que, si typelist se define (en Groovy) como
typeList = [['TYPE1', ['VAR1','VAR2','VAR3']],
['TYPE2', ['VAR1','VAR2','VAR3']]
['TYPE3', ['VAR1','VAR2','VAR3']] ]
cuando el página se renderiza, el código JavaScript aparece como
function selecTipe() {
var types = [[ TYPE1, [ VAR1, VAR2, VAR3 ]],
[ TYPE2, [ VAR1, VAR2, VAR3 ]]
[ TYPE3, [ VAR1, VAR2, VAR3 ]] ]
alert('List of types ' + types)
que es errónea, como Java La secuencia de comandos trata entonces no como cadenas, sino como referencias debido a la falta de comillas.
¿Hay alguna manera de forzar a Groovy a imprimir una lista de matrices con comillas u otra forma sencilla de lograr esto?
PD: Me pueden hacer una función específica para lograrlo, pero yo creo que debería ser una manera fácil de hacer eso ...
EDIT: He añadido la estructura de datos completa, como es un poco más complejo que una simple lista
funciona perfectamente! Incluso con la matriz más compleja. – Khelben