Can .$inject be used on Services in AngularJS, or is it needed only for Controllers?
angularjs, angularjs-service, minify
Solution
Check the dependency injection guide, section Inline Annotation.
The following is also a valid syntax, and it is safe for minification:
myModule.factory('myService', ['$rootScope', 'anotherService',
function($rootScope, anotherService) {
....
}]);
Problem
I'm aware that for the purposes of minification and obfuscation we should always use the $injector (by way of `controllerName.$inject = ['$service', '$service2']`) to specify the actual service names that are required. If I write a custom service that relies on other services, however, can/should I do the same thing? The only examples I can find for using the .$inject method are called on Controllers. If I am doing ``` myModule.factory('myService', function($rootScope, anotherService) { return { foo: 'bar' }); ``` Should I append this? `myService.$inject = ['$rootScope', 'anotherService'];` Or perhaps it's applied to the module as a whole then? `myModule.$inject = ['$rootScope', 'anotherService'];` ...But maybe in that case, the module is already keeping track of its services, and hence minification is not a concern?