1

I'm trying to load a google annotated chart using jade but can't get the chart to render. I was able to get a pie chart to load, but can't when loading a chart that needs the container element size to be specified explicitly.

The example from google http://code.google.com/apis/chart/interactive/docs/gallery/annotatedtimeline.html

translated into jade (my code)

head
  script(src='http://www.google.com/jsapi')
  script
    google.load('visualization', '1', {'packages':['annotatedtimeline']});
    google.setOnLoadCallback(drawChart);
    function drawChart() {
      var data = new google.visualization.DataTable();
      data.addColumn('date', 'Date');
      data.addColumn('number', 'Sold Pencils');
      data.addColumn('string', 'title1');
      data.addColumn('string', 'text1');
      data.addColumn('number', 'Sold Pens');
      data.addColumn('string', 'title2');
      data.addColumn('string', 'text2');
      data.addRows([
      [new Date(2008, 1 ,1), 30000, undefined, undefined, 40645, undefined, undefined],
      [new Date(2008, 1 ,2), 14045, undefined, undefined, 20374, undefined, undefined],
      [new Date(2008, 1 ,3), 55022, undefined, undefined, 50766, undefined, undefined],
      [new Date(2008, 1 ,4), 75284, undefined, undefined, 14334, 'Out of Stock','Ran out of stock on pens at 4pm'],
      [new Date(2008, 1 ,5), 41476, 'Bought Pens','Bought 200k pens', 66467, undefined, undefined],
      [new Date(2008, 1 ,6), 33322, undefined, undefined, 39463, undefined, undefined]
      ]);
    }
    var chart = new google.visualization.AnnotatedTimeLine(document.getElementById('chart_div'));
    chart.draw(data, {displayAnnotations: true});
  body
    a(href='/') Index
    p
    #chart_div

*and my css(loaded through express layout.jade file, note blue background for chart_div loads)*

body {
  padding: 50px;
  font: 14px "Lucida Grande", Helvetica, Arial, sans-serif;
}

a {
  color: #00B7FF;
}

#chart_div {
    background-color: #00B7FF;
    width: 700px;
    height: 240px;
}
tal
  • 11
  • 2

1 Answers1

0

Looks like it was just an issue of closing out my plotting function to early.

The } after the data was added needs to be after chart.draw instead

tal
  • 11
  • 2