2017-05-16 15 views
2

テンプレートにリストを渡そうとしたときにエラーが発生しました。ます。myListの今データはプレイフレームワークテンプレートでJavascriptを使用してint配列を取得する方法は?

myList: List<Map<String,int[]>> 

れる:

リストが同様に定義される

[{最初の試み= [1,0,0,1]、2回目の試行= [1,1 、2,2]}、{}]

私はchart.jsを使ってグラフを表示しますので、データリストとしてint []が必要です。

私の見解:

@(myList: List[Map[String,Array[Int]]]) 

var list = @myList; 
for(var i=0;i<list.length;i++){ 
    var map = list[i]; 
    for(var key in map){ 
     myFunction(key,map[key]); 
    } 
} 

myFunction(string,array){ 
//I want directly use the array to the chart’s datasets 
//others 

var myChart = new Chart(chartid, { 
    type: 'bar', 
    data: { 
     labels: [“a”, “b", “c”, ”s”], 
     datasets: [{ 
      data: array 
     }] 
    } 
} 

しかし、私はリストをトラバーサルしようとすると、私はエラーを得た(クロームデバッグを示すエラーライン)

var out = [{First Try=[[email protected], Second Try=[[email protected]}, {}]; 
// “Uncaught SyntaxError: Invalid or unexpected token”. 

直接出力配列

と私は知っています
System.out.println(array); 

javaの場合、[I @ 6e37161d]のような文字列が使用されますが、どのように対処するかわかりませんこの配列を使用するにはどうすればいいですか?誰かが助けてくれれば幸いです。

ありがとうございました。

答えて

2

JavaオブジェクトをJavascript変数に直接変換することはできません。ただmyList.toString()を取り、リテラルJavaScript変数としてそれを設定しようと

var list = @myList; 

。最初にJavaオブジェクトをJSONにシリアル化してから、parse the JSON in Javascriptにする必要があります。ように:

// Java controller code 
String myListJson = Json.stringify(Json.toJson(myList)); 

// Template 
@(myListJson: String) 
var list = JSON.parse("@myListJson"); 
+0

ありがとうございました!今それは動作します。 – Jane

関連する問題