根據Angular文檔,我們只能在配置塊中注入提供者(不是實例)。 https://docs.angularjs.org/guide/module#module-loading-dependencies
但與此Angular相反,您可以注入$provide
或$inject
,儘管它們是單例服務實例。
https://docs.angularjs.org/api/auto/service/$provide
根據Angular文檔,我們只能在配置塊中注入提供者(不是實例)。 https://docs.angularjs.org/guide/module#module-loading-dependencies
但與此Angular相反,您可以注入$provide
或$inject
,儘管它們是單例服務實例。
https://docs.angularjs.org/api/auto/service/$provide
這讓我好奇,所以我做了一些研究。以下是我發現:
在代碼中,2原因是$provide
投入providerInjector
(配置塊中使用的注入器)之前的providerCache
已創建。這可確保它始終是providerInjector
的已知提供商。 https://github.com/angular/angular.js/blob/master/src/auto/injector.js#L671
這就是說,我不同意,能夠注入$provide
到配置塊似乎矛盾關於什麼可以注入到此處所述的配置塊的一般規則:https://docs.angularjs.org/guide/module#module-loading-dependencies
即使它清楚地證明是什麼你可以在這裏做: https://docs.angularjs.org/guide/module#configuration-blocks
$provide
可能只是一般規則的例外。
請閱讀以下提供者:https://docs.angularjs.org/guide/providers(Service,Factory,Provider等)。 (另外,angular中的所有服務都是單例實例)。 – ippi
@ippi,我想問問題的人已經通過了文件。所以,如果不能回答,請不要激活人員。 #遠離 –