0

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

var newReport = ${report};

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

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

4

2 回答 2

2

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

在控制器中

def reportJson = report as JSON

在 gsp

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

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

于 2012-12-12T17:07:45.557 回答
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>
于 2012-12-15T14:30:18.290 回答