Grails将参数从g:each发送到javascript
我需要做的是显示比表大小允许我显示的更多的信息。 为此,当用户将鼠标移到需要查看的行上时,我将打开一个包含全部信息的jQuery对话框 我遇到的问题是,当我将参数从行传递到javascript函数时。 我不能让它像JSON对象一样使用 我从控制器向视图(gsp)发送一个ArrayList g:each 在视图中,我调用一个javascript函数来打开对话框,然后发送“循环”对象“${detail}” javascript成功实现JSON.parse()所需的是: 我无法用regex或splits()或其他任何方法修复这个“JSON”,因为其中一个参数是一个descripión,我可以接收任何类型的o字符 是否有其他方法可以接收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
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>