From 4033cf28142664c52aa7b4bc95340ac913397ac8 Mon Sep 17 00:00:00 2001 From: Colin Casey Date: Sat, 21 Sep 2013 01:24:39 -0300 Subject: feat(filter): allow map of filters to be registered This feature adds similar functionality to what `$ControllerProvider.register` and `$CompileProvider.directive` currently provide by allowing a map of filter name/factories to be passed as the sole argument to `$FilterProvider.register` to register all of the specified filters. Closes #4036 Closes #4091 --- src/ng/filter.js | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/ng/filter.js b/src/ng/filter.js index 5c6ffd0f..f41efbd9 100644 --- a/src/ng/filter.js +++ b/src/ng/filter.js @@ -78,15 +78,32 @@ $FilterProvider.$inject = ['$provide']; function $FilterProvider($provide) { var suffix = 'Filter'; + /** + * @ngdoc function + * @name ng.$controllerProvider#register + * @methodOf ng.$controllerProvider + * @param {string|Object} name Name of the filter function, or an object map of filters where + * the keys are the filter names and the values are the filter factories. + * @returns {Object} Registered filter instance, or if a map of filters was provided then a map + * of the registered filter instances. + */ function register(name, factory) { - return $provide.factory(name + suffix, factory); + if(isObject(name)) { + var filters = {}; + forEach(name, function(filter, key) { + filters[key] = register(key, filter); + }); + return filters; + } else { + return $provide.factory(name + suffix, factory); + } } this.register = register; this.$get = ['$injector', function($injector) { return function(name) { return $injector.get(name + suffix); - } + }; }]; //////////////////////////////////////// -- cgit v1.2.3