mirror of
https://github.com/Hopiu/angular.js.git
synced 2026-03-16 23:30:23 +00:00
105 lines
3.1 KiB
JavaScript
105 lines
3.1 KiB
JavaScript
'use strict';
|
|
|
|
/**
|
|
* @ngdoc object
|
|
* @name angular.module.ng.$filterProvider
|
|
* @description
|
|
*
|
|
* Filters are just functions which transform input to an output. However filters need to be Dependency Injected. To
|
|
* achieve this a filter definition consists of a factory function which is annotated with dependencies and is
|
|
* responsible for creating a the filter function.
|
|
*
|
|
* <pre>
|
|
* // Filter registration
|
|
* function MyModule($provide, $filterProvider) {
|
|
* // create a service to demonstrate injection (not always needed)
|
|
* $provide.value('greet', function(name){
|
|
* return 'Hello ' + name + '!':
|
|
* });
|
|
*
|
|
* // register a filter factory which uses the
|
|
* // greet service to demonstrate DI.
|
|
* $filterProvider.register('greet', function(greet){
|
|
* // return the filter function which uses the greet service
|
|
* // to generate salutation
|
|
* return function(text) {
|
|
* // filters need to be forgiving so check input validity
|
|
* return text && greet(text) || text;
|
|
* };
|
|
* };
|
|
* }
|
|
* </pre>
|
|
*
|
|
* The filter function is registered with the `$injector` under the filter name suffixe with `$Filter`.
|
|
* <pre>
|
|
* it('should be the same instance', inject(
|
|
* function($filterProvider) {
|
|
* $filterProvider.register('reverse', function(){
|
|
* return ...;
|
|
* });
|
|
* },
|
|
* function($filter, revers$Filter) {
|
|
* expect($filter('reverse')).toBe(reverse$Filter);
|
|
* });
|
|
* </pre>
|
|
*
|
|
*
|
|
* For more information about how angular filters work, and how to create your own filters, see
|
|
* {@link guide/dev_guide.templates.filters Understanding Angular Filters} in the angular Developer
|
|
* Guide.
|
|
*/
|
|
/**
|
|
* @ngdoc method
|
|
* @name angular.module.ng.$filterProvider#register
|
|
* @methodOf angular.module.ng.$filterProvider
|
|
* @description
|
|
* Register filter factory function.
|
|
*
|
|
* @param {String} name Name of the filter.
|
|
* @param {function} fn The filter factory function which is injectable.
|
|
*/
|
|
|
|
|
|
/**
|
|
* @ngdoc function
|
|
* @name angular.module.ng.$filter
|
|
* @function
|
|
* @description
|
|
* Filters are used for formatting data displayed to the user.
|
|
*
|
|
* The general syntax in templates is as follows:
|
|
*
|
|
* {{ expression | [ filter_name ] }}
|
|
*
|
|
* @param {String} name Name of the filter function to retrieve
|
|
* @return {Function} the filter function
|
|
*/
|
|
$FilterProvider.$inject = ['$provide'];
|
|
function $FilterProvider($provide) {
|
|
var suffix = '$Filter';
|
|
|
|
function register(name, factory) {
|
|
return $provide.factory(name + suffix, factory);
|
|
};
|
|
this.register = register;
|
|
|
|
this.$get = ['$injector', function($injector) {
|
|
return function(name) {
|
|
return $injector(name + suffix);
|
|
}
|
|
}];
|
|
|
|
////////////////////////////////////////
|
|
|
|
register('currency', currencyFilter);
|
|
register('date', dateFilter);
|
|
register('filter', filterFilter);
|
|
register('html', htmlFilter);
|
|
register('json', jsonFilter);
|
|
register('limitTo', limitToFilter);
|
|
register('linky', linkyFilter);
|
|
register('lowercase', lowercaseFilter);
|
|
register('number', numberFilter);
|
|
register('orderBy', orderByFilter);
|
|
register('uppercase', uppercaseFilter);
|
|
}
|