我是相當新的Grails MVC和JavaScript。 我遇到了一個問題,我想從控制器傳遞一個地圖對象到一個javascript函數。 目前兩個參數傳遞給用逗號分隔的JavaScript功能,這工作得很好Groovy通過映射到從控制器的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
},
}
控制器功能像這樣
methodInController (String strintArgs1,String strintArgs2){
//some operation
}
現在我想要將控制器函數中的映射對象傳遞給javascript func但我不能像JavaScript認爲地圖是一個無效的String對象。
下面是我有三個功能所做的更改,但在Ajax調用期間我得到一個錯誤說「未捕獲的SyntaxError:意外的字符串」
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他控制器功能目前看起來像這樣
methodInController (String strintArgs1, String strintArgs2, Object mapArg){
//some operation
}
這可能是與我正在把它傳遞給JavaScript函數的方式,但我不能夠找出確切的原因。 任何人都可以請幫我理解我做錯了什麼。 在此先感謝