2015-07-10 60 views
1

我試圖獲取json數據並使用angularjs將它們保存在本地存儲中,但是此錯誤「無法讀取屬性」獲取「未定義」出現在檢查元素中的任何幫助?在加載引導程序之前獲取json數據

function getData($http,callback){ 
     //callback(); 
     $http.get(server + "/CrewServices/adminConsole/adminData") 
       .success(function(data, status, headers, config) { 
        app.value('adminData', data); 
        var Roles=unique(data.roles); 
        localStorage.setItem("currLoggedUSer", data.userName); 
        localStorage.setItem("currLoggedUSerRoles", Roles); 
        angular.forEach(data.airlines, function (key) { 
         if(key == 0 && localStorage.getItem("selectedAirline") == null){ 
          localStorage.setItem("selectedAirline", data.airlines[key].airline); 
          localStorage.setItem("selectedAirlineApiKey", data.airlines[key].key); 
         } 
        }); 
        callback(); 
       }) 
       .error(function(data, status, headers, config) { 
        // log error 
       }); 
    } 
+0

Angular將注入$ http服務 - 由於$ http變量未定義,您可能在加載角度時遇到問題。確保你已經包含腳本標籤在你的html頁面添加角度,並且這個代碼位於角度控制器或者服務等。 – Will

回答

0

您需要在控制器中注入$ http。 Here's more info in the Angular documentation.

var myApp = angular.module('myApp',[]); 
myApp.controller('Controller', function($scope, $interval, $http){ 

    $interval(function($scope, $http){ 

     $http.get('test.json').success(function(data){ 

     }); 
    },5000); 

}); 
0

在引導之前,您需要獲取注入器並手動獲取$ http服務。

var initInjector = angular.injector(["ng"]); 
    var $http = initInjector.get("$http"); 
    $http.get