remoteFunction调用不是grails

时间:2012-08-06 18:40:50

标签: grails drop-down-menu grails-controller

我想在下拉菜单中进行选择后调用一个函数。这是我的list.gsp中“代码”域类的下拉菜单的代码:

<td><g:select name="data" from="${codeInstance.datas.language}" 
          onchange="${remoteFunction(action: 'translationById')}"/> 
</td>

这是我试图打电话的功能。这是在我的CodeController中:

def translationById = {
        println "Fine"
        //println params;
    }

我只是试图打印出“精细”,所以我知道该函数被调用,但“精细”永远不会被打印出来。为什么函数没有被调用?

2 个答案:

答案 0 :(得分:1)

使用方法,而不是使用闭包,例如:

def translationById() {
        println "Fine"
        //println params;
}

此外,使用一些浏览器调试器(如firebug或类似的)来查看是否显示错误消息。

如果在onchange事件中放置警报而不是remoteFunction会发生什么?如果显示警报,那么我认为你的问题在于原型库。将原型库添加到标题中。与<g:javascript library="prototype" />一样。

答案 1 :(得分:0)

语法对我来说很好。尽量确保您的'codeInstance'和'datas'不为空。另外,尝试传入控制器名称,如下所示:

remoteFunction(action: 'translationById', controller: 'code')

grails中的新规范是使用方法而不是闭包:

def translationById(){
    println "fine"
}