目前我为我的应用程序提供了一个名为" config"的常量。注入一些特定的应用程序范围的配置,如API端点URL等。
这与我的主要模块" app"在配置部分。
app.config(['config', function(config) {
console.log(config.api); // http://api.endpoint.com
}];
问题是,我有一个单独的模块,如" app.auth"我希望你用这个全局常量中的一些值配置它,但是我得到一个错误,配置是未知的。
我怎么能解决这个问题?在配置区域中注入服务并不是解决方案,因为AngularJS不会在配置块上提供服务。
提前谢谢。
答案 0 :(得分:0)
首先,您回答有关为什么'config'无法用于您的应用的问题。 您的应用是否设置为“app.auth”的依赖项?
var app = angular.module('myApp', ['ngResource']);
var authApp = angular.module('myApp.auth', ['myApp']);
其次使用常量来设置多个值是常量的不良使用,这对于提供者来说是一个很好的工作。这是一个例子:
module.provider('GlobalConfig', function ($resourceProvider) {
var valOne = 'Some Default';
this.setOne = function(value) {
valOne = value;
};
var valTwo = 'Another Default';
this.setTwo = function(value) {
valTwo = value;
};
this.$get = function($resource) {
return {
getOne: function() {
return valOne;
},
getTwo: function() {
return valTwo;
}
};
};
});
从.config中可以使用'GlobalConfigProvider'注入上面的提供者,只有setter才可用。然后,对于指令和服务,可以注入'GlobalConfig',只有getter可用。