diff --git a/src/loader.js b/src/loader.js index 15ab4bcaa172..be4d1c2072c5 100644 --- a/src/loader.js +++ b/src/loader.js @@ -193,6 +193,18 @@ function setupModuleLoader(window) { */ constant: invokeLater('$provide', 'constant', 'unshift'), + /** + * @ngdoc method + * @name angular.Module#decorator + * @module ng + * @param {string} The name of the service to decorate. + * @param {Function} This function will be invoked when the service needs to be + * instantiated and should return the decorated service instance. + * @description + * See {@link auto.$provide#decorator $provide.decorator()}. + */ + decorator: invokeLater('$provide', 'decorator'), + /** * @ngdoc method * @name angular.Module#animation diff --git a/test/loaderSpec.js b/test/loaderSpec.js index 6faa4db91940..1c4d0bb45d84 100644 --- a/test/loaderSpec.js +++ b/test/loaderSpec.js @@ -32,6 +32,7 @@ describe('module loader', function() { var myModule = window.angular.module('my', ['other'], 'config'); expect(myModule. + decorator('dk', 'dv'). provider('sk', 'sv'). factory('fk', 'fv'). service('a', 'aa'). @@ -46,6 +47,7 @@ describe('module loader', function() { expect(myModule.requires).toEqual(['other']); expect(myModule._invokeQueue).toEqual([ ['$provide', 'constant', ['abc', 123]], + ['$provide', 'decorator', ['dk', 'dv']], ['$provide', 'provider', ['sk', 'sv']], ['$provide', 'factory', ['fk', 'fv']], ['$provide', 'service', ['a', 'aa']],