我有一个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函数中的参数调用控制器方法吗?
答案 0 :(得分:2)
看起来你的代码的params部分可能有一个错误。尝试:
var newData = ${remoteFunction(controller: 'my', action: 'updateData', params: '[string_from_form]')};
答案 1 :(得分:0)
您希望params:
代替params =
。