初始化一个json对象为变量

问题描述 投票:0回答:4
(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
变量。上面的语法不正确。

angularjs angularjs-service
4个回答
0
投票

$http 返回一个承诺,所以你需要在回调中设置范围变量:

$http.get('js/chart_data.json').success(function(data){
    $scope.myChart = {"data": data, "options": {} };
}); 

0
投票

您的代码无效。我们多次遇到这个问题。

我们应该在 $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 以及在控制器的任何部分


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": {} };     
       });  


   });

})(); 

-1
投票

var chart_data = {};
这样你就可以将它初始化为一个空的 JSON 对象。

© www.soinside.com 2019 - 2024. All rights reserved.