Grails将参数从g:each发送到javascript

Grails将参数从g:each发送到javascript,javascript,json,grails,each,gsp,Javascript,Json,Grails,Each,Gsp,我需要做的是显示比表大小允许我显示的更多的信息。 为此,当用户将鼠标移到需要查看的行上时,我将打开一个包含全部信息的jQuery对话框 我遇到的问题是,当我将参数从行传递到javascript函数时。 我不能让它像JSON对象一样使用 我从控制器向视图(gsp)发送一个ArrayList g:each 在视图中,我调用一个javascript函数来打开对话框,然后发送“循环”对象“${detail}” javascript成功实现JSON.parse()所需的是: 我无法用regex或split

我需要做的是显示比表大小允许我显示的更多的信息。 为此,当用户将鼠标移到需要查看的行上时,我将打开一个包含全部信息的jQuery对话框

我遇到的问题是,当我将参数从行传递到javascript函数时。 我不能让它像JSON对象一样使用

我从控制器向视图(gsp)发送一个ArrayList g:each

在视图中,我调用一个javascript函数来打开对话框,然后发送“循环”对象“${detail}”

javascript成功实现JSON.parse()所需的是:

我无法用regex或splits()或其他任何方法修复这个“JSON”,因为其中一个参数是一个descripión,我可以接收任何类型的o字符

是否有其他方法可以接收javascript中的对象并像以下那样使用它: 警报(详细信息.代码)

我知道我可以像这样一个接一个地发送参数:

onmouseover='openDialog("${detail.code}", "${detail.name}")'
render (model:[detailList:detailList as JSON], view:'show')
但这不是我的想法,对吗?此外,还有很多参数

任何想法都会很有帮助。
谢谢。

您可以在控制器中将数据编码为
JSON
,如下所示:

onmouseover='openDialog("${detail.code}", "${detail.name}")'
render (model:[detailList:detailList as JSON], view:'show')
在视图中,您可以将
JSON
分配给任何JavaScript变量:

<script>
    var myJsDetailList = ${raw(detailList)};
</script>

这太棒了!谢谢${detail.encodeAsJSON()}完成了这项工作。如果对任何人都有用,我还必须删除javascript调用参数中的双引号:onmouseover='openDialog(${detalle.encodeAsJSON()})'
render (model:[detailList:detailList as JSON], view:'show')
<script>
    var myJsDetailList = ${raw(detailList)};
</script>
<g:each in="${detailList}" status="i" var="detail">
   <tr class="${(i % 2) == 0 ? 'even' : 'odd'}" onmouseover='openDialog("${detail.encodeAsJSON()}")' onmouseout='closeDialog()' >
      <td>${detail.code}</td>                     
      <td>${detail.name}</td>
   </tr>
</g:each>