如何将值从grails传递回javascript函数?
我有一种感觉,这个问题的答案很简单,但我似乎还不能得到它 我有一个Javascript函数,它通过remoteFunction调用Groovy类中的操作。现在,我需要将action类中的值返回给Javascript函数进行进一步处理。它看起来像这样:如何将值从grails传递回javascript函数?,javascript,grails,groovy,Javascript,Grails,Groovy,我有一种感觉,这个问题的答案很简单,但我似乎还不能得到它 我有一个Javascript函数,它通过remoteFunction调用Groovy类中的操作。现在,我需要将action类中的值返回给Javascript函数进行进一步处理。它看起来像这样: // sample js function in the gsp file function setPrev() { ... var tmp = $remoteFunction(action: 'someaction', params:
// sample js function in the gsp file
function setPrev() {
...
var tmp = $remoteFunction(action: 'someaction', params: ...)
...
}
def someaction = {
...
def retVal = Somedomain.anobject // 1:m relationship so there's a hasMany = [anobject...] in Somedomain
...
return retVal
}
在控制器中,操作将如下所示:
// sample js function in the gsp file
function setPrev() {
...
var tmp = $remoteFunction(action: 'someaction', params: ...)
...
}
def someaction = {
...
def retVal = Somedomain.anobject // 1:m relationship so there's a hasMany = [anobject...] in Somedomain
...
return retVal
}
现在,当它返回tmp时,它是[object]。有没有办法让我至少把[anobject1,anobject2,…,anobjectn]作为tmp的值?我甚至尝试过json,但它仍然是[object]
return retVal as JSON
只要记住导入org.grails.converters.JSON(我想是的)这很容易
return retVal as JSON
请记住导入org.grails.converters.JSON(我想是的)嗨,是的,我这样做了,但是当我打印出tmp时,它是[object]。。。不是json表示…嗨,这更像是一个javascript问题。。如果您在FireFox中使用FireBug(您应该这么做!),请尝试在javascript代码中编写console.debug(tmp)。要获取数据,您应该编写tmp.variableName.Thank以获得响应:)实际上,我一直在通过Firebug查看DOM,但我也有点迷茫。无论如何,至于tmp.variableName,这有点棘手,我认为。。。我似乎搞不懂变量名是什么。当我在groovy中打印出类类型时,retVal的类型是PersistentSet。。。在本例中,它应该看起来像[object1:1,object2:2,…],那么我应该将其引用为tmp.object1吗?当我这样做时,它告诉我它是“未定义的”,但当我看retVal时,它确实有[object1:1,object2:2,…]作为内容…在firebug中,你也可以尝试console.dir(tmp)-这将打印jsonhi的结构和变量,是的,我这样做了,但当我打印出tmp时,它是[object]。。。不是json表示…嗨,这更像是一个javascript问题。。如果您在FireFox中使用FireBug(您应该这么做!),请尝试在javascript代码中编写console.debug(tmp)。要获取数据,您应该编写tmp.variableName.Thank以获得响应:)实际上,我一直在通过Firebug查看DOM,但我也有点迷茫。无论如何,至于tmp.variableName,这有点棘手,我认为。。。我似乎搞不懂变量名是什么。当我在groovy中打印出类类型时,retVal的类型是PersistentSet。。。在本例中,它应该看起来像[object1:1,object2:2,…],那么我应该将其引用为tmp.object1吗?当我这样做时,它告诉我它是“未定义的”,但当我看retVal时,它确实有[object1:1,object2:2,…]作为内容…在firebug中,您也可以尝试console.dir(tmp)-这将打印json的结构和变量