AngularJS - Dependency injection in services, factories, filters etc AngularJS - Dependency injection in services, factories, filters etc angularjs angularjs

AngularJS - Dependency injection in services, factories, filters etc


Yes you can use dependency injection for filters and directives

Ex:

Filter:

app.filter('<filter>', ['$http', function(http){    return function(data){    }}]);

Directive:

app.directive('<directive>', ['$http', function(http){    return {        ....    }}]);

Service:

app.factory('<service>', ['$http', function(http) {  var shinyNewServiceInstance;  return shinyNewServiceInstance;}]);


For the sake of completeness, here is a service example with injection:

app.service('<service>', ['$http', function($http) {  this.foo = function() { ... }}]);


While the already existing answers are correct and working, john papas angular style guide favors the use of the $inject service in Y091:

Filter:

app.filter('<filter', MyFilter);MyFilter.$inject = ['$http'];function MyFilter() {  return function(data) {  }}

Directive:

app.directive('<directive>', MyDirective);MyDirective.$inject = ['$http'];function MyDirective() {  return {    ...  }}

Factory:

app.factory('<factory>', MyFactory);MyFactory.$inject = ['$http'];function MyFactory() {  var shinyNewServiceInstance;  return shinyNewServiceInstance;}

Service:

app.service('<service>', MyService);MyService.$inject = ['$http'];function MyService() {  this.foo = foo;  function foo(){    ...  }}