angularjs - .$inject 可以在 AngularJS 中的服务上使用,还是仅用于 Controller ?

标签 angularjs minify angularjs-service

我知道,出于缩小和混淆的目的,我们应该始终使用 $injector(通过 controllerName.$inject = ['$service', '$service2'] 的方式)来指定所需的实际服务名称。

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

如果我在做

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

我应该附加这个吗?
myService.$inject = ['$rootScope', 'anotherService'];
或者也许它作为一个整体应用于模块?
myModule.$inject = ['$rootScope', 'anotherService'];
...但也许在那种情况下,模块已经在跟踪它的服务,因此缩小不是问题?

最佳答案

查看dependency injection guide , 部分 内联注释 .

以下也是一种有效的语法,并且可以安全地缩小:

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

        ....
}]);

关于angularjs - .$inject 可以在 AngularJS 中的服务上使用,还是仅用于 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15721975/

相关文章:

javascript - 如何从AngularJS中的服务访问 Controller 值?

spring - AngularJS $Http CORS 与 Spring Rest & Security 中的后端

javascript - Angular JS - 变量更新间隔

javascript - Jquery:如何将监听器放在 Angular strap datetimepicker 值更改上?

php - 缩小PHP有什么意义吗?

javascript - 嵌套 ng-repeat 在父重复 ID 上重复

javascript - 如何在javascript中获取准确的源域地址

javascript - 我应该在颠覆系统中包含压缩文件吗?

javascript - Javascript 的文件大小因位置、本地或服务器而异

angularjs - deferred.resolve 给出错误 TypeError : undefined is not a function