我有一个模块。它有一个配置块,一个提供者和一个常量定义。配置块引用常量和提供者。我注意到我的常量可以在我的配置块之前或之后定义。但是,必须在配置块之前定义提供程序,否则我会收到错误。
Error: [$injector:modulerr] Failed to instantiate module loadOrder due to:
[$injector:unpr] Unknown provider: greetingsProvider
以下是一些示例代码:
var myModule = angular.module('loadOrder', []);
//if I define this after the config block, I get an error
angular.module('loadOrder').provider('greetings',[ function(){
this.$get = [function(){
return { greet: function(){ return "Hola"; } };
}];
}]);
myModule.config(['$provide', 'greetingsProvider', 'planetName', function($provide, loadOrderProvider, planetName){
$provide.value('someVals',[3,6,8]);
console.log("Lets go to", planetName);
}]);
myModule.constant('planetName', 'Saturn');
这是为什么?为什么我在配置块之后无法定义我的提供程序?
答案 0 :(得分:0)
当您致电provider
,config
或constant
时,不会立即发生任何事情。调用被注册,放入队列并在应用程序初始化期间运行。
constant
的有趣之处在于它被放在队列的前面。因此,无论如何,它都可以在config
之前使用。