我对Grails MVC和javascript相当新。 我遇到一个问题,我想将控制器中的地图对象传递给javascript函数。 目前有两个参数传递给javascript函数,它们是逗号分隔的,这很好用
eg. someControllerFunction() {
variableLink = "j-javaScriptFunction-${stringArgs1},${stringArgs2}" // This is a link for an ajax call
}
javascript函数结构如下所示
function someJavaScriptFunction (details) {
var d = details.split(",");
var strintArgs1 = d[0];
var stringArgs2 = d[1];
ajax":{
"url":"${request.contextPath}/controller/methodInController?strintArgs1=" + strintArgs1 + "&stringArgs2=" +stringArgs2
},
}
在ajax中调用的Controller函数目前看起来像这样
methodInController (String strintArgs1,String strintArgs2){
//some operation
}
现在我想将一个地图对象从控制器函数传递给javascript函数,但我无法将javascript视为无效的String对象。
以下是对三个函数所做的更改,但是我在ajax调用期间收到错误“Uncaught SyntaxError:Unexpected string”
eg. someControllerFunction() {
variableLink = "j-javaScriptFunction-${stringArgs1},${stringArgs2},${mapArg}" // This is a link for an ajax call
}
地图对象看起来像这样
mapArg = [a:[],b:[],c:[],d:[]]
javascript函数结构如下所示
function someJavaScriptFunction (details) {
var d = details.split(",");
var strintArgs1 = d[0];
var stringArgs2 = d[1];
var mapArg = d[2];
ajax":{
"url":"${request.contextPath}/controller/methodInController?strintArgs1=" + strintArgs1 + "&stringArgs2=" +stringArgs2 + "&mapArg=" +mapArg
},
}
在ajax中调用的Controller函数目前看起来像这样
methodInController (String strintArgs1, String strintArgs2, Object mapArg){
//some operation
}
这可能与我将它传递给javascript函数的方式有关,但我无法弄清楚具体原因。 谁能帮助我理解我做错了什么。 提前致谢
答案 0 :(得分:1)
看起来您可能必须首先将地图强制转换为JSON(这可以解释为什么它是一个字符串)。请参阅此答案:https://stackoverflow.com/a/2064341/1902587