Groovy / grails如何使用jquery从视图中调用控制器方法

时间:2013-07-09 15:28:03

标签: jquery grails

我有一个Groovy / Grails项目,其视图中有一些数据从其控制器呈现给它,比如控制器名为MyController,我想呈现的数据称为$ {myData}。我的观点的相关部分如下所示:

<head>
    $('#refreshData').click(function(){
        //here I want to run the method in my controller and update the value of myData
    });
    ...
</head>    

<body>
    ...    
    <input type="text" id="inputData" />
    <button id="refreshData">Submit</button>
    ...
</body>

我的控制器有一个动作,它接收一个String类型的参数(它应该从输入表单接收它)

def updateData(String input) {
    //updating input
    [myData: return_value]
}

我想从我的jquery函数调用动作updateData,或者通过为该函数的返回值分配一个本地js变量,或者通过将一个变量呈现给我的视图并访问它。我试着打电话

var newData = ${
    remoteFunction(
        controller: 'my', 
        action: 'updateData', 
        params =[string_from_form]
    )};

但是我收到错误groovy.lang.MissingMethodException并带有

形式的消息
  

没有方法签名&lt;&gt;适用于值(java.util.LinkedHashMap,java.util.ArrayList)值:[[controller:my ...

有人可以告诉我如何用jQuery函数中的参数调用控制器方法吗?

2 个答案:

答案 0 :(得分:2)

看起来你的代码的params部分可能有一个错误。尝试:

var newData = ${remoteFunction(controller: 'my', action: 'updateData', params: '[string_from_form]')};

答案 1 :(得分:0)

您希望params:代替params =