1

我有一个 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>

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

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

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

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

但我收到groovy.lang.MissingMethodException了表单消息的错误

方法 <> 的签名不适用于值(java.util.LinkedHashMap、java.util.ArrayList)值:[[controller:my...

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

4

2 回答 2

2

看起来您的代码的 params 部分可能存在错误。尝试:

var newData = ${remoteFunction(controller: 'my', action: 'updateData', params: '[string_from_form]')};
于 2013-07-09T15:52:38.517 回答
0

你想要params:而不是params =.

于 2013-07-10T12:24:38.447 回答