Skip to content

Instantly share code, notes, and snippets.

@jchadwick
Last active October 2, 2015 01:21
Show Gist options
  • Save jchadwick/01d9e2ac58764f4e07b8 to your computer and use it in GitHub Desktop.
Save jchadwick/01d9e2ac58764f4e07b8 to your computer and use it in GitHub Desktop.
Angular Lazy-Loading
(function (angular) {
angular._module = angular.module;
angular.module = function () {
var module = angular._module.apply(angular, arguments);
enableLazyLoading.$inject = ['$controllerProvider', '$provide', '$compileProvider'];
function enableLazyLoading($controllerProvider, $provide, $compileProvider) {
// Let's keep the older references.
module._controller = module.controller;
module._service = module.service;
module._factory = module.factory;
module._value = module.value;
module._directive = module.directive;
// Provider-based controller.
module.controller = function (name, constructor) {
$controllerProvider.register(name, constructor);
return (this);
};
// Provider-based service.
module.service = function (name, constructor) {
$provide.service(name, constructor);
return (this);
};
// Provider-based factory.
module.factory = function (name, factory) {
$provide.factory(name, factory);
return (this);
};
// Provider-based value.
module.value = function (name, value) {
$provide.value(name, value);
return (this);
};
// Provider-based directive.
module.directive = function (name, factory) {
$compileProvider.directive(name, factory);
return (this);
};
// Provider-based filter.
module.filter = function (name, factory) {
$filterProvider.register(name, factory);
return (this);
};
}
module.config(enableLazyLoading);
return module;
}
})(angular);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment