2017-03-06 70 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; 
相关问题