4

縮小と難読化の目的で、controllerName.$inject = ['$service', '$service2']必要な実際のサービス名を指定するには、常に $injector を ( 経由で) 使用する必要があることを認識しています。

ただし、他のサービスに依存するカスタム サービスを作成する場合、同じことを行うことができますか? .$inject メソッドを使用するために私が見つけることができる唯一の例は、コントローラーで呼び出されます。

私がやっているなら

 myModule.factory('myService', function($rootScope, anotherService) {
  return {
    foo: 'bar'
  });

これを追加する必要がありますか?

myService.$inject = ['$rootScope', 'anotherService'];

それとも、モジュール全体に適用されるのでしょうか?

myModule.$inject = ['$rootScope', 'anotherService'];

...しかし、その場合、モジュールはすでにそのサービスを追跡しているので、縮小は問題ではありませんか?

4

1 に答える 1

4

依存性注入ガイドのインライン注釈セクションを確認してください。

以下も有効な構文であり、縮小しても安全です。

myModule.factory('myService', ['$rootScope', 'anotherService', 
      function($rootScope, anotherService) {

        ....
}]);
于 2013-03-30T19:33:42.120 に答える