将json对象初始化为变量

时间:2015-02-16 10:20:46

标签: angularjs angularjs-service

(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变量。以上语法不正确。

4 个答案:

答案 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对象。