【问题标题】:Create chart using json data使用 json 数据创建图表
【发布时间】:2017-03-28 15:17:44
【问题描述】:

我有以下 JSON 数据,我正在尝试使用 AngularJS 创建折线图。但是使用地图功能,我可以得到$scope.labels,但不能形成$scope.series$scope.data

这是我的 JS 代码:

var source = [
  {"DE":2,"NP":20,"BD":28,"TW":1,
  "end_time":"2016-07-05T07:00:00+0000","date":"01-01-2011"},
  {"DE":5,"NP":11,"BD":22,"BE":2,"FJ":2,
  "end_time":"2016-07-06T07:00:00+0000","date":"01-09-2011"},
  {"DE":5,"NP":24,"BD":29,
  "end_time":"2016-07-07T07:00:00+0000","date":"01-11-2011"}
]
var $scope = {};
$scope.labels = [];
$scope.data = [];
$scope.series = [];


source.forEach(function(item){
  $scope.labels.push(item.end_time)
})

如何从 JSON 中获取数据以形成如下所示的系列和数据。

$scope.series = ["DE","NP","BD","TW"]

$scope.data = [] ---> //Stuck here in forming data

JSfiddle

【问题讨论】:

标签: javascript jquery angularjs json angular-chart


【解决方案1】:

如果您更改迭代数据的方式,这应该变得相当简单:

angular.forEach(source, function(item){
  $scope.labels.push(item.end_time);
  angular.forEach(item, function(val, key) {
    if(key === 'end_time') return;
    $scope.data.push(val);
    $scope.series.push(key);
  });
})

Updated Fiddle

Angular 的forEach 将帮助您迭代对象。

【讨论】:

  • 感谢您调查此问题。但我需要 $scope.series 作为 2D 数组来创建图表。示例 -$scope.data = [ [65, 59, 80, 81, 56, 55, 40], [28, 48, 40, 19, 86, 27, 90] ];并且 $scope.data 具有重复值
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多