[英]Why does Angular let you inject the $provide service into config blocks?
根據Angular文檔,我們只能在配置塊中注入Providers(而不是實例)。 https://docs.angularjs.org/guide/module#module-loading-dependencies
但與此相反,Angular允許您注入$provide
或$inject
,盡管它們是單例服務實例。
這讓我很好奇所以我做了一些研究。 這是我發現的:
在代碼中,2的原因是$provide
在providerInjector
(在配置塊中使用的注入器)創建之前被放入providerCache
。 這確保了它始終是providerInjector的已知提供providerInjector
。 https://github.com/angular/angular.js/blob/master/src/auto/injector.js#L671
也就是說,我確實同意能夠在配置塊中注入$provide
似乎與可以注入此處所述配置塊的一般規則相矛盾: https : //docs.angularjs.org/guide/module#module-loading-依賴
即使它清楚地證明了你可以在這里做的事情: https : //docs.angularjs.org/guide/module#configuration-blocks
$provide
可能只是一般規則的一個例外。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.