我对 Grails MVC 和 javascript 还很陌生。 我遇到了一个问题,我想将 map 对象从 Controller 传递给 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
}
现在我想将一个映射对象从 Controller 函数传递给 javascript 函数,但我不能这样做,因为 javascript 将映射视为无效的字符串对象。
下面是我对这三个函数所做的更改,但我在 ajax 调用期间收到错误消息“Uncaught SyntaxError: Unexpected string”
eg. someControllerFunction() {
variableLink = "j-javaScriptFunction-${stringArgs1},${stringArgs2},${mapArg}" // This is a link for an ajax call
}
map 对象看起来像这样
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 函数的方式有关,但我无法找出确切的原因。 谁能帮我理解我做错了什么。 提前致谢
最佳答案
看起来您可能必须先将 map 转换为 JSON(这可以解释为什么它是一个字符串)。看到这个答案:https://stackoverflow.com/a/2064341/1902587
关于javascript - groovy 将映射从 Controller 传递到 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31164012/