我正在用 Grails 制作一个 Web 应用程序。我有一个列表,其中包含必须包含在 JavaScript 中以对<select>
下拉列表执行一些动态加载的数据。基本上,我从服务器获得了一个两级列表,然后第一级显示在一个下拉框上。当用户选择一个选项时,与该选项关联的列表显示在另一个下拉框上。
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:我可以制作一个特定的功能来实现它,但我认为这应该是一种简单的方法......
编辑:我添加了完整的数据结构,因为它比简单的列表复杂一点