我想将从数据库查询检索到的编码JSON数据加载到Angular-nvD3图表中,但我不知道如何去做,或者哪种方式是最好的完成这样的任务。将JSON数据加载到Angular-nvD3图表中(AngularJS)
我使用api从数据库(表PRODUCTS)检索编码的JSON数据。我已经成功地将这些数据加载到$http
请求(加载到工厂中)到给定api的表中。数据将作为对象保存到工厂的字典中,请求API($http
)(位于服务中)。
表中的样品(表PRODUCTS):
ID STOCK
工厂的样品:
.factory('services', ['$http', function($http){
var serviceBase = 'services/'
var object = {};
object.getData = function(){
return $http.get(serviceBase + 'data');
};
return object;
}]);
样品的控制器的显示数据到一个表(用 “ng-repeat="data in get_data"
” 的视图):
.controller('TablesCtrl', ['$scope', 'services', function($scope, services) {
services.getData().then(function(data){
$scope.get_data = data.data;
});
}]);
样本的数据格式的:
[{"0":"1","1":"100","ID":"1","STOCK":"100"},{"0":"2","1":"275","ID":"2","STOCK":"275"}]
饼图 - 这是我想要添加的脚本类型的示例(来自THIS存储库):
'use strict';
angular.module('mainApp.controllers')
.controller('pieChartCtrl', function($scope){
$scope.options = {
chart: {
type: 'pieChart',
height: 500,
x: function(d){return d.key;},
y: function(d){return d.y;},
showLabels: true,
duration: 500,
labelThreshold: 0.01,
labelSunbeamLayout: true,
legend: {
margin: {
top: 5,
right: 35,
bottom: 5,
left: 0
}
}
}
};
$scope.data = [
{
key: "One",
y: 5
},
{
key: "Two",
y: 2
},
{
key: "Three",
y: 9
},
{
key: "Four",
y: 7
},
{
key: "Five",
y: 4
},
{
key: "Six",
y: 3
},
{
key: "Seven",
y: .5
}
];
});
HTML:
<div ng-app="myApp">
<div ng-controller="pieChartCtrl">
<nvd3 options="options" data="data"></nvd3>
</div>
</div>
我的问题是:它是如何可能加载这样检索到的编码数据JSON成角nvD3图形代替数据手动键入到$scope.data
的?
非常感谢!
如果你的JSON数据的格式你可以直接插入图表,那么你在那里有什么工作。它只是'services.getData()。then(function(data){scopedata = data.data; });'。否则,您可能需要将数据按摩到图表所期望的结构中。 –
[请参阅此plunker](http://plnkr.co/edit/QWFunjULS325rMAPcXNW?p=preview)。 –
我认为我无法直接将数据插入图表。我的问题是如何将数据按照图表所期望的结构进行按摩?例如,有两个查询:一个对象带有“键”,另一个带有“y”(值)?两种都采用JSON格式。 – Ariana