Grails氛围插件问题

时间:2011-07-28 10:46:26

标签: grails grails-plugin atmosphere

我正在使用Grails应用程序中的Atmosphere插件向客户端发出Ajax推送调用。基本架构是,我在服务器中有一个循环,它创建了我想要推送到浏览器的数据,因此在每次迭代中它都使用大气broadcast()方法将数据发送到客户端。

当我在循环外使用它时它工作正常,如下所示:

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)
    }

任何想法为什么会发生这种情况? 谢谢!

1 个答案:

答案 0 :(得分:0)

如果删除引号,我认为它应该有用。

location = {
    lat = it.lat
    lng = it.lng
}

基督教