我的用例是:我们有几个助手类,A和B,它们是服务,A依赖于B,我想使他们的提供者可以在.config阶段使用它们。
我跟着this SO answer在供应商内部加载供应商。
正如你可以在这里看到,它的工作原理:
http://plnkr.co/edit/SIvujHt7bprFumhxwJqD?p=preview
var coreModule = angular.module('CoreModule', []);
coreModule.provider('Car', function() {
//CarProvider.engine
this.engine = 'big engine';
//Car
this.$get = function() {
return {
color: 'red'
};
};
});
coreModule.provider('ParameterService', ['$injector', function($injector) {
try {
var CarProvider = $injector.get('CarProvider');
this.deepEngine = CarProvider.engine;
console.log('deepEngine = ' + this.deepEngine);
} catch (e) {
console.log("nope!")
}
// ParameterService
this.$get = function() {
return {};
};
}]);
coreModule.config(function(CarProvider) {
console.log('configEngine = ' + CarProvider.engine); // big engine
});
这工作,如果我在这个顺序一个文件有Car
和ParameterService
。
然而,当我分裂Car
和ParameterService
到多个磁盘上的文件,或者我在同一个文件Car
之前定义ParameterService
,$injector.get('CarProvider')
内ParameterService
失败。
我该如何解决这个问题?
我想为每个文件提供一个提供程序/服务,但我不明白缺失的是什么。
你可以提供一个失败的文件夹(分隔文件)吗? – ConcurrentHashMap