(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
变量。以上语法不正确。
答案 0 :(得分:0)
$ http返回一个promise,因此你需要在回调中设置scope变量:
$http.get('js/chart_data.json').success(function(data){
$scope.myChart = {"data": data, "options": {} };
});
答案 1 :(得分:0)
应该是这样的: -
(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": {} };
});
});
})();
答案 2 :(得分:0)
您的代码无效。我们多次遇到这个问题。
我们应该在$ http请求后获取数据。而且不需要在这里使用chart_data
(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和控制器的任何部分
答案 3 :(得分:-1)
var chart_data = {};
这样你可以将它初始化为一个空的JSON对象。