javascript - Angular/JS - Google 面积图中的动态内容

标签 javascript angularjs charts google-visualization

我正在使用Google Charts Area Chart用于在图表中显示温度和日期。我需要显示的内容是动态的,应该在加载时填写。 我将 Angular 与 Sails.js 结合使用,每个温度都存储在一个对象 batchTemps 中,并且这些对象存储在一个具有数组的对象 batchTempList 中; 内容

我需要使用batchTempList.contents来填充面积图,但无法找出工作方法。

以下是使用静态数据生成图表的示例:

data = google.visualization.arrayToDataTable([
      ['Time', 'Temp C°'],
      ['2017-05-31 13:44:54',  20.5],
      ['2017-05-31 13:54:54',  21.7],
      ['2017-05-31 14:04:54',  22.0],
      ['2017-05-31 14:14:54',  21.3]
    ]);

我想从列表中检索数据,然后像上面的静态示例一样输入它。 batchTemps 对象具有 ID、温度和createdAt(记录日期)。

我尝试过但没有成功的示例:

data = google.visualization.arrayToDataTable([
      ['Time', 'Temp C°'],
      for (batchTemp in batchTempList.contents) {
                    ['batchTemp.createdAt', batchTemp.temperature],
                }
]);

JSFiddle 静态解决方案:http://jsfiddle.net/qphnyash/

PS:在我的应用程序的早期版本中,我将 Sails.js 与 EJS 结合使用,并使用以下代码使其工作:

var data = google.visualization.arrayToDataTable([
    ['Time', 'Temp C°'],
    <% _.each(brewery.temperatures, function(breweryTemp) { %>
    ['<%= breweryTemp.createdAt %>', <%= breweryTemp.temperature %>],
    <% }); %>
  ]);

但由于我切换到 Angular,并且当前使用模板而不是 .ejs 文件,因此我无法使用它。

提前致谢, 任何帮助将不胜感激。

最佳答案

在构建数据表之前尝试构建数组...

var chartData = [
  ['Time', 'Temp C°']
];

for (batchTemp in batchTempList.contents) {
  chartData.push(
    [batchTemp.createdAt, batchTemp.temperature]
  );
}

var data = google.visualization.arrayToDataTable(chartData);

编辑

构建图表数据数组...

如果 batchTempList.contents 是数组 [],而不是对象 {}

你想使用forEach...

batchTempList.contents.forEach(function (batchTemp) {
  chartData.push(
    [batchTemp.createdAt, batchTemp.temperature]
  );
});

或常规for循环...

for (var i = 0; i < batchTempList.contents.length; i++) {
  chartData.push(
    [batchTempList.contents[i].createdAt, batchTempList.contents[i].temperature]
  );
}

关于javascript - Angular/JS - Google 面积图中的动态内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44308348/

相关文章:

javascript - 带有 ng 重复内容的 AngularJS 工具提示/弹出窗口

javascript - 何时在 AngularJS Web 应用程序中使用 $scope?

javascript - C3 中带有 JSON 数据的多个 Y 轴

algorithm - 是否有用于在链接图表上定位节点的算法?

JavaScript - 随机播放音频

php - Javascript 和字符串格式的国际化

angularjs - 如何使用 angularjs 注销后清除本地存储

charts - 如何将颜色饱和度分布的图例添加到 power bi 填充 map 图表中

javascript - Safari 浏览器上的强制“另存为”对话框

javascript - Cytoscape.js:如何将节点颜色/形状/大小导出到 json?