(function() {
var app = angular.module('myApp', ['chartjs-directive']);
app.controller('myController', function($scope,$http){
var chart_data = {};
$http.get('js/chart_data.json').success(function(data){
chart_data = data;
});
$scope.myChart = {"data": chart_data, "options": {} };
});
})();
如果 chart_data 直接分配给键值对,它的工作正常......
如何在
chart_data
服务中初始化 $http
变量。上面的语法不正确。
$http 返回一个承诺,所以你需要在回调中设置范围变量:
$http.get('js/chart_data.json').success(function(data){
$scope.myChart = {"data": data, "options": {} };
});
您的代码无效。我们多次遇到这个问题。
我们应该在 $http 请求之后获取数据。无需在这里获取图表数据
(function() {
var app = angular.module('myApp', ['chartjs-directive']);
app.controller('myController', function($scope,$http){
$http.get('js/chart_data.json').success(function(data){
$scope.myChart = {"data": data, "options": {} };
});
});
})();
我们可以在 html 中将 $scope.myChart.data 用作 myChart.data 以及在控制器的任何部分
应该是这样的:-
(function() {
var app = angular.module('myApp', ['chartjs-directive']);
app.controller('myController', function($scope,$http){
$scope.chart_data = {};
$http.get('js/chart_data.json').success(function(data){
$scope.chart_data = data;
$scope.myChart = {"data": $scope.chart_data, "options": {} };
});
});
})();
var chart_data = {};
这样你就可以将它初始化为一个空的 JSON 对象。