我有一个Groovy / Grails项目,其 View 具有从其 Controller 呈现给它的一些数据,例如该 Controller 称为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> 

我的 Controller 有一个 Action ,它接收一个String类型的参数(应该从输入表单中接收它)
def updateData(String input) { 
    //updating input 
    [myData: return_value] 
} 

我想从我的jquery函数中调用操作updateData,方法是为该函数的返回值分配一个本地js变量,或者将一个变量呈现给我的 View 并访问它。我试过打电话
var newData = ${ 
    remoteFunction( 
        controller: 'my',  
        action: 'updateData',  
        params =[string_from_form] 
    )}; 

但是我收到错误 groovy.lang.MissingMethodException和以下形式的消息

No signature of method <> is applicable for values (java.util.LinkedHashMap, java.util.ArrayList) values: [[controller:my...



有人可以告诉我如何通过该jQuery函数的参数调用 Controller 方法吗?

请您参考如下方法:

看起来您的代码的params部分中可能有一个bug。尝试:

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


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!