Khe*_*ben 5 javascript grails groovy gsp
我正在用Grails制作一个Web应用程序.我有一个列表,其中包含必须包含在JavaScript中的数据,以便在<select>下拉列表中执行一些动态加载.基本上,我从服务器获得一个两级列表,然后第一级显示在一个下拉框中.当用户选择一个选项时,与该选项关联的列表将显示在另一个下拉框中.
JavaScript函数的gsp页面上的(简化)代码如下
function selecTipe() {
var types = ${typeList}
alert('List of types ' + types )
Run Code Online (Sandbox Code Playgroud)
问题是,如果将typeList定义为(在Groovy中)为
typeList = [['TYPE1', ['VAR1','VAR2','VAR3']],
['TYPE2', ['VAR1','VAR2','VAR3']]
['TYPE3', ['VAR1','VAR2','VAR3']] ]
Run Code Online (Sandbox Code Playgroud)
当页面重新定义时,JavaScript代码显示为
function selecTipe() {
var types = [[ TYPE1, [ VAR1, VAR2, VAR3 ]],
[ TYPE2, [ VAR1, VAR2, VAR3 ]]
[ TYPE3, [ VAR1, VAR2, VAR3 ]] ]
alert('List of types ' + types )
Run Code Online (Sandbox Code Playgroud)
这是错误的,因为JavaScript不是作为字符串处理,而是因为缺少引号而作为引用.
有没有办法强制Groovy打印带引号的数组列表或任何其他简单的方法来实现这一目标?
PD:我可以做一个特定的功能来实现它,但我认为这应该是一个简单的方法...
编辑:我添加了完整的数据结构,比简单的列表更复杂
在grails控制器的操作中尝试这个:
def types = ['TYPE1', 'TYPE2', 'TYPE3'] as grails.converters.JSON
[typeList : types]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7941 次 |
| 最近记录: |