我当然缺少对喷油器的一些基本观点,但我不明白为什么正是这种
angular.module('app').config(function ($provide) {
...
});
,这是预期,而这
angular.module('app').config(function ($injector) {
$injector.invoke(function ($provide) { ... });
});
工作
app.run(function($provide) {
...
});
将抛出
Error: [$injector:unpr] Unknown provider: $provideProvider <- $provide
从上面的如下,config
与供应商的一些特殊关系,同时与run
交易情况,但我不确定,使得config
块,这样特殊的东西。
因此,是否没有办法在config
以外的区域得到$provide
,与angular.injector()
(虽然它似乎也获得提供者实例)?
这个问题,除了好奇之外,还有一些实际的考虑。在1.4中,所有$provide
函数都暴露在模块中,但对于1.3而言并非如此。
谢谢你,迈克尔,这是能够很好地服务于社区的高质量答案。目前,我已经进一步提高了一点,不能从答案中学到任何新东西。我希望有人会分享他对ng内部的知识。我想我必须通过'bootstrap'和'$ injector'并再次研究它们。 – estus
1.4'module'终于暴露了'$ provide'提供的整个API。在之前的版本中并不如此(至少“装饰者”缺失)。 – estus