我知道,出于缩小和混淆的目的,我们应该始终使用 $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/