1
1
'use strict' ;
2
2
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
+ */
3
77
$FilterProvider . $inject = [ '$provide' ] ;
4
78
function $FilterProvider ( $provide ) {
5
79
var suffix = '$Filter' ;
6
80
7
- $provide . filter = function ( name , factory ) {
81
+ function register ( name , factory ) {
8
82
return $provide . factory ( name + suffix , factory ) ;
9
83
} ;
84
+ this . register = register ;
10
85
11
86
this . $get = [ '$injector' , function ( $injector ) {
12
87
return function ( name ) {
@@ -16,15 +91,15 @@ function $FilterProvider($provide) {
16
91
17
92
////////////////////////////////////////
18
93
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 ) ;
30
105
}
0 commit comments