1

config ブロックの外で $provide を呼び出すことはできないことを知っています。$provide.decorator でそれを呼び出すサービスに $provide を注入するトリックはありますか?

angular.module('app', [])
  .config(function($provide){
    $provide.decorator('myService', function($delegate){
      //inject the $provide into myService through $delegate
      return $delegate;
    }
  })

4

1 に答える 1

1

$provideAngular によって内部的に定義されているため、特別です。サービス プロバイダー間ではインジェクターによって検出できます(したがって、 で使用できますconfig) が、サービス インスタンス間では検出できません。

これは簡単に修正できます

angular.module('app', []).config(function ($provide) {
  $provide.value('$provide', $provide);
});

ただし、この方法では、コンポーネントをタイミングの悪い方法で簡単に定義することもできます。

于 2015-09-02T21:44:15.887 に答える