Prawidłowo przekaż listę Groovy do kodu JavaScript w GSP
Tworzę aplikację internetową z Grails. Mam listę z danymi, które muszą być włączone w JavaScript, aby wykonać pewne obciążenie dynamiczne<select>
lista rozwijana. Zasadniczo otrzymuję listę dwóch poziomów z serwera, a następnie pierwszy poziom jest prezentowany na polu rozwijanym. Gdy użytkownik wybierze opcję, lista skojarzona z tą opcją zostanie wyświetlona na innym polu rozwijanym.
(Uproszczony) kod na stronie gsp funkcji JavaScript jest następujący
function selecTipe() {
var types = ${typeList}
alert('List of types ' + types )
Problem polega na tym, że jeśli typList jest zdefiniowany (w Groovy) jako
typeList = [['TYPE1', ['VAR1','VAR2','VAR3']],
['TYPE2', ['VAR1','VAR2','VAR3']]
['TYPE3', ['VAR1','VAR2','VAR3']] ]
kiedy strona jest renderowana, kod JavaScript wygląda tak
function selecTipe() {
var types = [[ TYPE1, [ VAR1, VAR2, VAR3 ]],
[ TYPE2, [ VAR1, VAR2, VAR3 ]]
[ TYPE3, [ VAR1, VAR2, VAR3 ]] ]
alert('List of types ' + types )
co jest błędne, ponieważ JavaScript traktuje nie jako łańcuchy, ale jako odniesienia z powodu braku cudzysłowów.
Czy jest jakiś sposób, aby zmusić Groovy do wydrukowania listy tablic z cudzysłowami lub w inny prosty sposób, aby to osiągnąć?
PD: Mogę wykonać określoną funkcję, aby to osiągnąć, ale myślę, że powinien to być łatwy sposób ...
EDYTOWAĆ: Dodałem pełną strukturę danych, co jest trochę bardziej skomplikowane niż prosta lista