2016-01-06 45 views
0

在下面的代碼來讀取JSON,無法使用angularjs

<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="UTF-8"> 
     <title>Dashboard</title> 
     <!-- Libs --> 
     <script src="angular.js"></script> 
     <script> 
     var countryApp = angular.module('countryApp', []); 
     countryApp.controller('CountryCtrl', function ($scope, $http){ 
      $http.get('country_codes.json').success(function(data) { 
       $scope.countries = data; 
      }); 
     }); 
     </script> 
    </head> 
    <body ng-controller="CountryCtrl"> 

    </body> 
</html> 

/* * country_codes.json/

[ 
    { 
    "code": "AD", 
    "name": "Andorra", 
    "population": "84000" 
    }, 
    { 
    "code": "AE", 
    "name": "United Arab Emirates", 
    "population": "4975593" 
    } 
] 

按照調試,我沒有看到任何錯誤和回調函數不執行。

爲什麼控制器回調沒有執行?

+0

你應該處理'.error'回調過,不只是'。 success'。 –

回答

1

添加誤差函數,你會看到錯誤的詳細信息:

<script> 
     var countryApp = angular.module('countryApp', []); 
     countryApp.controller('CountryCtrl', function ($scope, $http){ 
       $http.get('country_codes.json') 
    .then(function(data) {$scope.countries = data;} 
, 
      function(data) {console.log("error: "+data)}); 
}); 
</script> 

變化的JSON到:

{ 
    "countries": [ 
    { 
    "code": "AD", 
    "name": "Andorra", 
    "population": "84000" 
    }, 
    { 
    "code": "AE", 
    "name": "United Arab Emirates", 
    "population": "4975593" 
    } 

    ] 

} 
+0

現在,我看到,在json 1:1語法錯誤 – overexchange

2

在您的html標籤中添加ng-app =「countryApp」後,它適用於我。

+0

是否必須添加'ng-app'? – overexchange

+0

是的,ng-app告訴angularjs HTML標籤元素是AngularJS應用程序的「所有者」。您可以將ng-app添加到任何標記,例如div標記 – kamal

+0

但仍然無法使用代碼。你可以撥動代碼嗎? – overexchange