Правильно передайте список Groovy коду JavaScript в GSP

Я делаю веб-приложение с Grails. У меня есть список с данными, которые должны быть включены в JavaScript для выполнения некоторой динамической нагрузки на <select> список отбрасывания. В основном я получаю два списка уровня от сервера, затем первый уровень представлен на поле отбрасывания. Когда пользователь выбирает опцию, список, связанный с этой опцией, представлен на другом поле отбрасывания.

(Упрощенный) код на gsp странице для функции JavaScript следующий

function selecTipe() {
        var types = ${typeList}
        alert('List of types ' + types )

Проблема - это, если список типов определяется (в Groovy) как

typeList = [['TYPE1', ['VAR1','VAR2','VAR3']], 
            ['TYPE2', ['VAR1','VAR2','VAR3']]
            ['TYPE3', ['VAR1','VAR2','VAR3']] ]

когда страница является renderized, код JavaScript появляется как

function selecTipe() {
        var types = [[ TYPE1, [ VAR1, VAR2, VAR3 ]], 
                     [ TYPE2, [ VAR1, VAR2, VAR3 ]]
                     [ TYPE3, [ VAR1, VAR2, VAR3 ]] ]
        alert('List of types ' + types )

который ошибочен, поскольку JavaScript рассматривает затем не как строки, но как ссылки, должные отсутствие кавычек.

Там какой-либо путь состоит в том, чтобы вынудить Groovy распечатать список массивов с кавычками или каким-либо другим простым способом достигнуть этого?

PD: Я могу сделать определенную функцию для достижения его, но я думаю, что это должен быть простой способ сделать это...

Править: Я добавил полную структуру данных, как немного более сложно, чем простой список

5
задан Zhaph - Ben Duguid 31 August 2012 в 13:58
поделиться

1 ответ

Попробуйте это в действии контроллера Grails:

def types = ['TYPE1', 'TYPE2', 'TYPE3'] as grails.converters.JSON
[typeList : types]
9
ответ дан 14 December 2019 в 01:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: