我当然错过了关于注射器的一些基本观点,但我不明白为什么会这样
angular.module('app').config(function ($provide) {
...
});
和这个
angular.module('app').config(function ($injector) {
$injector.invoke(function ($provide) { ... });
});
按预期工作,而这
app.run(function($provide) {
...
});
会抛出
错误:[$injector:unpr] 未知提供者:$provideProvider <- $provide
从上面可以看出,config
与提供者有一些特殊的关系,同时run
处理实例,但我不确定是什么让config
块如此特别。
因此,有没有办法到达$provide
外部config
块,例如angular.injector()
(尽管它似乎也获得了提供者实例)?
这个问题,除了单纯的好奇之外,还有一些实际的考虑。在 1.4 中,所有$provide
功能都暴露给模块,但在 1.3 中并非如此。