【发布时间】:2015-12-08 10:37:35
【问题描述】:
为什么我必须在将使用它的config 函数之前声明provider?
换句话说,这段代码有效:
angular.module('app')
.provider('testService', function() {
// ...
})
.config(function(testServiceProvider) {
// ...
});
但不是这个(得到了[$injector:unpr] Unknown provider: testServiceProvider):
angular.module('app')
.config(function(testServiceProvider) {
// ...
})
.provider('testService', function() {
// ...
});
(在我的真实代码中,这两个块是在单独的文件中定义的,因此加载这些文件的顺序非常重要)
我的理解是,当我调用 module('app').config(...) 和 module('app').provider(...) 时,代码不会立即执行,而是在 Angular 应用程序启动时执行,因此,这就是 Angular 以正确顺序执行不同代码的作用(即provider 代码和然后 config 代码)。
谢谢
ps1:我已经看到this question了,其实是一样的,不过答案更多的是建议或者猜测……
ps2:我仍在使用 Angular 1.2,也许 Angular 1.3 - 1.4 改变了?
【问题讨论】:
标签: angularjs angular-providers