2017-06-10 6 views
5

Angularのドキュメントでは、コンフィグブロックにプロバイダ(インスタンスではない)しか挿入できません。 https://docs.angularjs.org/guide/module#module-loading-dependencies

しかし、この角度に反して、あなたがそれらをシングルトンサービスインスタンスでありながら$provideまたは$injectを注入することができます。

https://docs.angularjs.org/api/auto/service/$provide

+1

プロバイダが何であるかについては、https://docs.angularjs.org/guide/providers(サービス、工場、プロバイダなど)を参照してください。 (また、angleのすべてのサービスはシングルトンインスタンスです)。 – ippi

+1

@ippi、私は質問をした人が文書を読んだと思う。だから、もし答えることができないなら、人々を降格させてはいけません。 #StayAway –

答えて

1

これは私は好奇心旺盛だので、私はいくつかの研究をしました。ここで私が見つけたものです:コードで

  1. $インジェクタが
  2. $が設定ブロックに注入することができる提供のconfigブロックに注入することができない、2の理由は、$provideが投入されていることですproviderInjectorの前のproviderCache(設定ブロックで使用されるインジェクタ)が作成されます。これにより、常にproviderInjectorの既知のプロバイダになります。 https://docs.angularjs.org/guide/module#module-loading-dependencies

    明確なものであることが実証されたにもかかわらず:私は設定ブロックにでき、噴射$provideであることが、ここで述べた構成ブロックに注入することができるかについての一般的なルールと矛盾するようだということに同意しない、と述べたhttps://github.com/angular/angular.js/blob/master/src/auto/injector.js#L671

    ここで行うことができます: https://docs.angularjs.org/guide/module#configuration-blocks

    $provideは、一般的なルールの例外です。

関連する問題