【发布时间】:2016-02-11 15:51:45
【问题描述】:
我需要从我的 gsp 上的 javascript 调用一个控制器函数。 我从数百个地方阅读了不同的解决方案,但没有一个有效。 我发现最接近我的问题是this。 但我没有重复与此相同的错误,因此解决方案没有帮助。
我有一个这样的标签,它调用 javascript 函数
<g:select name="poNumber" noSelection="['':'Select PO Number']" from="${com.rerq.PurchaseOrder.list()}"
onchange="getProject(this.value)" />
而javascript函数看起来像这样
function getProject(poNumber){
var projectName = document.getElementById("projectName");
var newData = ${remoteFunction(controller: 'sow', action: 'getProject', params: ['poNumber':poNumber])};
}
而我需要调用的函数是
def getProject(String poNumber) {
String projectName = Sow.find("from Sow as s where s.poNumber=?", [poNumber])
return projectName
}
控制器功能可能有错误,因为我对 groovy 和 grails 完全陌生。但我的理解是控制没有到达这里,所以这不应该是任何问题的原因。
我遇到了异常
没有方法签名:remoteFunction() 适用于参数类型:(java.util.LinkedHashMap) 值:[[controller:sow, action:getProject, params:[poNumber:null]]]
我尝试在 g:select 中使用 remoteFunction(),但它抛出了另一个异常
属性值引号未闭合...
即使他们是。
非常感谢任何帮助。
【问题讨论】:
-
您使用的是哪个版本的 Grails?如果是 Grails 3,是否安装了 ajax-tags 插件?见stackoverflow.com/questions/34979604/…
-
我正在使用 3.0.9 并安装 ajax-tags 删除了异常。虽然我改变了方法,因为还有其他问题。无论如何,谢谢你的帮助。如果您可以将其发布为答案,我会接受。
标签: javascript jquery grails groovy