Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Inject dateFilter in a service in AngularJs

I would like to know if there is a way to inject the filters in a service in AngularJs.

I've been trying

app.factory('educationService', [function($rootScope, $filter) {      // ..... Some code      // What I want     console.log(dateFilter(new Date(), 'yyyy-MM-01'));      // ..... Some code  }]); 

So I would like to know if it is possible to inject a filter in a service or maybe it is accessible in another way.

And if you have a link to a documentation about this point, it would be really nice :) Been searching in the doc of Angular and I found nothing really helpful about this.

Thanks :)

like image 796
Julien Rodrigues Avatar asked Mar 14 '13 11:03

Julien Rodrigues


1 Answers

First you have to inject the filter like this:

app.factory('myService', ['$rootScope', '$filter', function($rootScope, $filter)  

(The array is only needed when you use minification in your build process)

To call specific filter programmatically:

$filter('date')(new Date(), 'yyyy-MM-01'); 

$filter(name)returns the specific filter function, which you can than call with your arguments:

var dateFilter = $filter('date'); var filteredDate = dateFilter(new Date(), 'yyyy-MM-01') 
like image 58
Stewie Avatar answered Sep 21 '22 18:09

Stewie