2016-03-15 52 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! 
    }; 
})(); 

确保遵守进样器/功能签名顺序。

相关问题