5
我正在用Grails製作Web應用程序。我有一個列表,其中包含必須包含在JavaScript中的數據以執行<select>
下拉列表中的一些動態加載。基本上,我從服務器獲取兩級列表,然後第一級顯示在下拉框中。當用戶選擇一個選項時,與該選項關聯的列表將出現在另一個下拉框中。正確地將Groovy列表傳遞給GSP中的Javascript代碼
爲JavaScript函數的GSP頁面上的(簡化的)碼下面
function selecTipe() {
var types = ${typeList}
alert('List of types ' + types)
的問題是,如果類型串被定義(在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)
這是錯誤的,因爲Java腳本不作爲字符串處理,而是作爲缺少引號的引用。
有什麼辦法可以強制Groovy使用引號或任何其他簡單的方法來打印數組列表來實現這個目標嗎?
PD:我可以做一個特定的功能來實現它,但我認爲它應該是一個簡單的方法來做到這一點...
編輯:我已經添加了完整的數據結構,是在你的Grails控制器的動作有點不是一個簡單的列表更復雜
它完美!即使是更復雜的陣列。 – Khelben 2010-01-14 14:23:00