为什么我被迫在将使用它的函数provider
之前声明?config
换句话说,这段代码有效:
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(...)
and时module('app').provider(...)
,代码不会立即执行,但是当 Angular 应用程序被引导时,这就是 Angular 以正确的顺序执行不同代码的作用(即代码provider
然后代码config
)。
谢谢
ps1:这个问题我已经看过了,其实是一样的,但是答案更多的是建议或者猜测……
ps2:我仍在使用 Angular 1.2,也许 Angular 1.3 - 1.4 改变了?