0

I have the following code in my server.js

  var cddata = [];
  body.rows.forEach(function(doc) {
  cddata.push([{id: doc.id, name: doc.key, text:doc.value.Time, group: 1}]);              
  });
  response.render('timeline', {cddata: JSON.stringify(cddata)});

and I have the following in my Jade view file

script(src='vis/dist/vis.js')        
link(rel="stylesheet", href="vis/dist/vis.css", type="text/css")

script.
    //alert(cddata);    
    var options = {};
    var data = new vis.DataSet(cddata);
    var container = document.getElementById('visualization');
    new vis.Timeline(container, data, options);

However, nothing related to the chart is rendered. I presume the object is not correctly passed to the jade file. Please help!

Also, is there a way to verify the incoming object in Jade? Alerts dont seem to work. thanks

4

2 回答 2

0

您的<script>翡翠中的 是浏览器端脚本,因此无法访问模板生成范围内的变量。您需要将数据输出为 JSON 并使用浏览器端 JavaScript 将其读取,如下所示:

script(src='vis/dist/vis.js')        
link(rel="stylesheet", href="vis/dist/vis.css", type="text/css")

script.
    var chartData = JSON.parse('#{cddata}')
    var options = {};
    var data = new vis.DataSet(chartData);
    var container = document.getElementById('visualization');
    new vis.Timeline(container, data, options);
于 2015-03-27T17:58:22.260 回答
0

经过深思熟虑,以下工作将对象从节点服务器传递到 Jade 文件上的客户端服务器脚本。

在 server.js 上,其中 dbdata 是 JSON 对象的数组

response.render('timeline', {dbdata:dbdata});

玉档上,

script.
   var chartData = !{JSON.stringify(dbdata)};

谢谢,

于 2015-03-28T09:31:25.503 回答