2016-03-15 49 views
0

我有一個角應用,定義了一些全局值如下:我需要做什麼來訪問控制器中的全局數據?

angular.module('ionicApp', ['ionic', 'ngCordova', 'services']) 
    .value('GlobalValues', 
    { 
     host : "http://localhost/", 
     accountApi: 'MyService/api/AccountApi/' 

     // ... other stuff like this 
    }) 
    .run(function ($ionicPlatform) { 
     // etc.. 
    }) 

我能夠訪問GlobalValues在我UserService,其定義爲:

angular.module('services', []) 
    .service('UserService', function($q, $http, $ionicLoading, GlobalValues) { 
     alert(GlobalValues.host); // has a value 
    }); 

但在我CreateAdControllerGlobalValues未定義:

(function() { 
    'use strict'; 

    angular.module('ionicApp') 
     .controller('CreateAdController', ['$cordovaCamera', 'Camera', '$scope', '$http', 'GlobalValues', CreateAdController]); 

    function CreateAdController($cordovaCamera, $scope, $http, GlobalValues) { 
     alert(GlobalValues.host); // is undefined! 
    }; 
})(); 

什麼我需要做的ACCES來自我的CreateAdControllerGlobalValues的數據?

+1

注射問題。 GlobalValues是第五參數,但您只向控制器注入4個參數... –

+0

您插入的模塊順序和發送模塊的函數不正確。根據上面的代碼,GlobalValues將包含$ http對象。 –

+0

@PoyrazYilmaz是對的:) –

回答

0
(function() { 
'use strict'; 

angular.module('ionicApp') 
    .controller('CreateAdController', ['$cordovaCamera', 'Camera', '$scope', '$http', 'GlobalValues']); 

function CreateAdController($cordovaCamera, Camera, $scope, $http, GlobalValues) { 
    alert(GlobalValues.host); // is undefined! 
}; 
})(); 

以上應該工作我做了一些改變。此外CreateAdController不需要再次注入

0

你搞砸了你的注射。在您的注射聲明中有幾個值太多,或者在您的方法簽名中很少。

(function() { 
    'use strict'; 

    angular.module('ionicApp') 
     .controller('CreateAdController', ['$cordovaCamera', 'Camera', '$scope', '$http', 'GlobalValues']); 

    function CreateAdController($cordovaCamera, Camera, $scope, $http, GlobalValues) { 
     alert(GlobalValues.host); // is undefined! 
    }; 
})(); 

確保遵守進樣器/功能簽名順序。

相關問題