可以。$ inject用于AngularJS中的服务,还是只需要控制器?

时间:2013-03-30 18:31:54

标签: angularjs minify angularjs-service

我知道为了缩小和混淆,我们应该总是使用$ injector(通过controllerName.$inject = ['$service', '$service2'])来指定所需的实际服务名称。

但是,如果我编写依赖其他服务的自定义服务,我可以/应该做同样的事情吗?我可以找到使用。$ inject方法的唯一示例在Controllers上调用。

如果我在做

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

我应该追加这个吗?

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

或许它可能作为一个整体应用于模块呢?

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

......但也许在这种情况下,该模块已经跟踪其服务,因此缩小不是一个问题?

1 个答案:

答案 0 :(得分:4)

检查dependency injection guide内联注释部分。

以下也是一种有效的语法,对于缩小是安全的:

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

        ....
}]);