2017-03-28 64 views
0

我有下面的JSON数据,通过它我尝试使用AngularJS创建折线图。但是使用地图功能,我能够获得$scope.labels,但无法形成$scope.series$scope.data使用json数据创建图表

这里是我的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

+0

您应该只查看angular的文档。有一个名为$ http的模块,并且有很多示例如何做你想要的。 以下是$ http的地址doc https://docs.angularjs.org/api/ng/service/$http –

回答

0

如果你改变你遍历数据的方式,这应该成为相当微不足道:

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

角的forEach将帮助您在对象迭代。

+0

感谢您关注此问题。但我需要$ scope.series作为二维数组来创建图表。示例 - $ scope.data = [ [65,59,80,81,56,55,40], [28,48,40,19,86,27,90] ];和$ scope.data有重复的值 – user4324324