我正在使用Grails应用程序中的氛围插件对客户端进行Ajax推送调用。基本的架构是,我在服务器中有一个循环,它创建了我想要推送到浏览器的数据,所以在每次迭代中,它都使用氛围广播()方法将数据发送到客户端。
当我在循环之外使用它时,它工作得很好,如下所示:
def builder = new JSONBuilder()
def jsonResult = builder.build{
artist = "incubus"
location = {
lat = 45.678909
lng = -14.45667
}
}
broadcaster['/atmosphere/recommend'].broadcast(jsonResult)但是,当我在循环中以编程方式使用它时,浏览器会抛出错误:一个无效或非法的字符串被指定为“code:"12,并且不能正常工作。
循环的一个简化示例如下:
[[lat:45.678909,lng:-14.45667],[lat:32.56433,lng:22.4566]].each{
def builder = new JSONBuilder()
def jsonResult = builder.build{
artist = "incubus"
location = {
lat = '"${it.lat}"'
lng = '"${it.lng}"'
}
}
broadcaster['/atmosphere/recommend'].broadcast(jsonResult)
}知道为什么会发生这种事吗?谢谢!
发布于 2011-07-28 18:35:06
如果你去掉引号的话,我觉得应该管用。
location = {
lat = it.lat
lng = it.lng
}克里斯蒂安
https://stackoverflow.com/questions/6857707
复制相似问题