我可以为grails对象定义一个javascript变量吗?

时间:2012-12-12 16:07:51

标签: javascript html grails

我可以将javascript变量分配给这样的grails对象吗?

var newReport = ${report};

report是一个grails域对象,它从控制器传递回gsp文件。

目前这在我的页面中不起作用。

2 个答案:

答案 0 :(得分:2)

假设该报告是Grails域类,您必须将其“翻译”为有效的javascript格式。一种方法是将其设置为JSON。类似的东西:

在控制器中

def reportJson = report as JSON

在gsp中

<script type='text/javascript'>
  var newReport = $.parseJSON("${reportJson}");
</script>

parseJSON接受json字符串并返回一个javascript对象。

答案 1 :(得分:0)

将域对象作为JSON呈现给gsp,其中一些javascript代码通过 eval()函数获取json。例如:

域名类 - 乐队:

String bandName    //some property
...

控制器:

def bands = Band.list()
render(template:"result", model:[bands:bands as JSON]

_result.gsp:

<script>
    var bandList = eval(${bands});
    for(i=0; i<bandList.length; i++){   
        var name = bandList[i].bandName;
        ....
    }
    ....
</script>