2015-07-01 31 views
2

我是相當新的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函數的方式,但我不能夠找出確切的原因。 任何人都可以請幫我理解我做錯了什麼。 在此先感謝

回答