11'use strict' ;
22
3+ /**
4+ * @ngdoc object
5+ * @name angular.module.NG.$filterProvider
6+ * @description
7+ *
8+ * Filters are just functions which transform input to an output. However filters need to be Dependency Injected. To
9+ * achieve this a filter definition consists of a factory function which is annotated with dependencies and is
10+ * responsible for creating a the filter function.
11+ *
12+ * <pre>
13+ * // Filter registration
14+ * function MyModule($provide, $filterProvider) {
15+ * // create a service to demonstrate injection (not always needed)
16+ * $provide.value('greet', function(name){
17+ * return 'Hello ' + name + '!':
18+ * });
19+ *
20+ * // register a filter factory which uses the
21+ * // greet service to demonstrate DI.
22+ * $filterProvider.register('greet', function(greet){
23+ * // return the filter function which uses the greet service
24+ * // to generate salutation
25+ * return function(text) {
26+ * // filters need to be forgiving so check input validity
27+ * return text && greet(text) || text;
28+ * };
29+ * };
30+ * }
31+ * </pre>
32+ *
33+ * The filter function is registered with the `$injector` under the filter name suffixe with `$Filter`.
34+ * <pre>
35+ * it('should be the same instance', inject(
36+ * function($filterProvider) {
37+ * $filterProvider.register('reverse', function(){
38+ * return ...;
39+ * });
40+ * },
41+ * function($filter, revers$Filter) {
42+ * expect($filter('reverse')).toBe(reverse$Filter);
43+ * });
44+ * </pre>
45+ *
46+ *
47+ * For more information about how angular filters work, and how to create your own filters, see
48+ * {@link guide/dev_guide.templates.filters Understanding Angular Filters} in the angular Developer
49+ * Guide.
50+ */
51+ /**
52+ * @ngdoc method
53+ * @name angular.module.NG.$filterProvider#register
54+ * @methodOf angular.module.NG.$filterProvider
55+ * @description
56+ * Register filter factory function.
57+ *
58+ * @param {String } name Name of the filter.
59+ * @param {function } fn The filter factory function which is injectable.
60+ */
61+
62+
63+ /**
64+ * @ngdoc function
65+ * @name angular.module.NG.$filter
66+ * @function
67+ * @description
68+ * Filters are used for formatting data displayed to the user.
69+ *
70+ * The general syntax in templates is as follows:
71+ *
72+ * {{ expression | [ filter_name ] }}
73+ *
74+ * @param {String } name Name of the filter function to retrieve
75+ * @return {Function } the filter function
76+ */
377$FilterProvider . $inject = [ '$provide' ] ;
478function $FilterProvider ( $provide ) {
579 var suffix = '$Filter' ;
680
7- $provide . filter = function ( name , factory ) {
81+ function register ( name , factory ) {
882 return $provide . factory ( name + suffix , factory ) ;
983 } ;
84+ this . register = register ;
1085
1186 this . $get = [ '$injector' , function ( $injector ) {
1287 return function ( name ) {
@@ -16,15 +91,15 @@ function $FilterProvider($provide) {
1691
1792 ////////////////////////////////////////
1893
19- $provide . filter ( 'currency' , currencyFilter ) ;
20- $provide . filter ( 'date' , dateFilter ) ;
21- $provide . filter ( 'filter' , filterFilter ) ;
22- $provide . filter ( 'html' , htmlFilter ) ;
23- $provide . filter ( 'json' , jsonFilter ) ;
24- $provide . filter ( 'limitTo' , limitToFilter ) ;
25- $provide . filter ( 'linky' , linkyFilter ) ;
26- $provide . filter ( 'lowercase' , lowercaseFilter ) ;
27- $provide . filter ( 'number' , numberFilter ) ;
28- $provide . filter ( 'orderBy' , orderByFilter ) ;
29- $provide . filter ( 'uppercase' , uppercaseFilter ) ;
94+ register ( 'currency' , currencyFilter ) ;
95+ register ( 'date' , dateFilter ) ;
96+ register ( 'filter' , filterFilter ) ;
97+ register ( 'html' , htmlFilter ) ;
98+ register ( 'json' , jsonFilter ) ;
99+ register ( 'limitTo' , limitToFilter ) ;
100+ register ( 'linky' , linkyFilter ) ;
101+ register ( 'lowercase' , lowercaseFilter ) ;
102+ register ( 'number' , numberFilter ) ;
103+ register ( 'orderBy' , orderByFilter ) ;
104+ register ( 'uppercase' , uppercaseFilter ) ;
30105}
0 commit comments