我想在AngularJS中渲染图表。
服务TrendChartFactory
发出get请求来检索数据,有两个参数作为输入。
现在,我的问题当我调用函数getValue()
时,它使用我从get请求收到的数据,它返回undefined 。
你知道我怎么能解决这个问题?
提前致谢。
angular.module('App')
.directive('Trend',function(){
return {
restrict: 'E',
templateUrl: 'app/trend/trend.html',
scope: {
card: '=',
puName: '<',
selectedItem: '<'
},
controller: function($scope, $rootScope, $filter, TrendChartFactory) {
$scope.$watch('selectedItem', function() {
console.log($scope.selectedItem);
console.log("ChangedSelected");
TrendChart();
}, true);
$scope.$watch('puName', function(){
console.log($scope.puName);
console.log("ChangedpuName");
TrendChart();
},true);
$scope.labels = ['2006', '2007', '2008', '2009', '2010', '2011', '2012'];
function getValue(selectedV,trendV) {
for(var i= 0; i< trendV.length;i++) {
console.log(trendV[i][selectedV]);
$scope.data.push(trendV[i][selectedV]);
}
$scope.datta.push($scope.data);
console.log($scope.datta);
}
function TrendChart(){
$scope.data = [];
$scope.datta = [];
TrendChartFactory.get( {
Item: $scope.selectedItem.key,
puItem: $scope.puName},function(data){
$scope.trendValues = data;
console.log($scope.trendValues);
});
getValue($scope.selectedItem.key,$scope.trendValues);
}
},
controllerAs: "TrendCtrl"
};
})
答案 0 :(得分:0)
getValue($scope.selectedItem.key,$scope.trendValues);
在TrendChartFactory
内的回调运行之前运行。
您需要将此说明放入其中。
TrendChartFactory.get( {
Item: $scope.selectedItem.key,
puItem: $scope.puName},function(data){
$scope.trendValues = data;
console.log($scope.trendValues);
getValue($scope.selectedItem.key,$scope.trendValues);
});