gpt4 book ai didi

angularjs - 为什么必须在配置 block 之前定义提供程序

转载 作者:行者123 更新时间:2023-12-04 16:09:49 26 4
gpt4 key购买 nike

我有一个模块。它有一个配置 block 、一个提供者和一个定义的常量。 config block 引用常量和提供者。我注意到我的常量可以在我的配置 block 之前或之后定义。但是,必须在配置 block 之前定义提供程序,否则我会收到错误消息。

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');

为什么是这样?为什么我不能在我的配置 block 之后定义我的提供者?

最佳答案

当您调用 provider , configconstant什么都不会立即发生。调用在应用程序初始化期间被注册、放入队列并运行。
constant 的有趣之处是它被放在队列的前面。因此它在 config 之前可用,无论如何。

关于angularjs - 为什么必须在配置 block 之前定义提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23118619/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com