在我的home.scala.html页面 head 我有一个全面的javascript来调用谷歌图表,使用来自scala的地图使用 java play framework
<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 Hello&#39; console.log
似乎无法在SBT控制台中显示。
答案 0 :(得分:0)
必须将map变量作为String引入。 JSON可用于此但
var mapVariable = "@mapFromScala"
同样有效,虽然从String转换回Map的过程是不优雅的。
此过程描述为here,但数据类型不同且
data.addRows([[xVariable, yVariable]])
调用而不是
jsArray.xVariable = yVariable;