为什么我的谷歌图表javascript什么都没做?

时间:2017-03-06 11:18:11

标签: javascript html scala playframework google-visualization

在我的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控制台中显示。

1 个答案:

答案 0 :(得分:0)

必须将map变量作为String引入。 JSON可用于此但

var mapVariable = "@mapFromScala"

同样有效,虽然从String转换回Map的过程是不优雅的。

此过程描述为here,但数据类型不同且

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

而不是

jsArray.xVariable = yVariable;