Grails で Web アプリケーションを作成しています。<select>
ドロップリストで動的ロードを実行するために JavaScript に含める必要があるデータのリストがあります。基本的に、サーバーから 2 レベルのリストを取得し、最初のレベルがドロップ ボックスに表示されます。ユーザーがオプションを選択すると、このオプションに関連付けられたリストが別のドロップ ボックスに表示されます。
JavaScript 関数の gsp ページの (簡略化された) コードは次のとおりです。
function selecTipe() {
var types = ${typeList}
alert('List of types ' + types )
問題は、typeList が (Groovy で) 次のように定義されている場合です。
typeList = [['TYPE1', ['VAR1','VAR2','VAR3']],
['TYPE2', ['VAR1','VAR2','VAR3']]
['TYPE3', ['VAR1','VAR2','VAR3']] ]
ページがレンダリングされると、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: それを達成するために特定の関数を作成することはできますが、それを行うには簡単な方法である必要があると思います...
編集:単純なリストよりも少し複雑なので、完全なデータ構造を追加しました