2017-03-06 44 views
0

在我的home.scala.html頁面的我有一個全面的JavaScript調用谷歌圖表,使用從scala使用Java播放框架傳遞的地圖。爲什麼我的谷歌圖表javascript沒有做任何事情?

<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> 
<script type="text/javascript"> 

    google.charts.load('current', {'packages':['line']}); 
    google.charts.setOnLoadCallback(drawChart); 

function drawChart() { 

    var data = new google.visualization.DataTable(); 
    data.addColumn('date', 'xVariable'); 
    data.addColumn('number', 'yVariable'); 

    var mapVariable = @mapFromScala; 

    console.log("Hello world"); 

    for (var mapKey in mapVariable) { 
    data.addRows([ 
    [new Date(mapKey) , mapVariable[mapKey]] 
    ]); 
    } 

    var options = { 
    chart: { 
     title: 'This is my map', 
     subtitle: 'it has a subtitle' 
    }, 
    width: 1000, 
    height: 600 
    }; 

    var chart = new google.charts.Line(document.getElementById('chartId')); 

    chart.draw(data, options); 
} 

</script> 

,並在身體

<div id="chartId"></div> 

爲什麼我沒有拿到任何東西?即使是'Hello world'console.log似乎也沒有在SBT控制檯中顯示。

+1

是你的Javascript代碼的實際執行?即如果你在腳本的最頂端放置一個'console.log',那麼這個消息是否被記錄? –

+0

是的,它似乎沒有被執行的JavaScript,雖然一個工作的谷歌圖表(即從文檔中拉出一個例子)開始的console.log不會出現在控制檯中。 – jMan

+0

gstatic腳本已導入,爲清晰起見,現在包含在問題中 – jMan

回答

0

必須將map變量作爲字符串引入。 JSON可用於這一點,但

var mapVariable = "@mapFromScala" 

同樣的作品,雖然過程從字符串轉換回地圖是不雅。

這個過程描述here,除了數據類型是不同的,

data.addRows([[xVariable, yVariable]]) 

被調用,而不是

jsArray.xVariable = yVariable; 
相關問題