我的用例是:我們有幾個助手類,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