AngularJS Lazy-Loading
Using $injector for lazy-loading
by Jeremy Likness
HTML
<div ng-app='myApp'>
<ul>
<li ng-repeat='log in logs'>{{log}}</li>
</ul>
</div>
JavaScript
(function (app) {
app.config(['$provide', function ($provide) {
$provide.decorator('$log', ['$delegate', '$injector', function ($delegate, $injector) {
var log = $delegate.log.bind($delegate);
$delegate.log = function (msg) {
var rs = $injector.get('$rootScope');
if (rs.logs === undefined) {
rs.logs = [];
}
rs.logs.push(msg);
log(msg);
};
return $delegate;
}]);
}])
.run(['$log', function ($log) {
$log.log('Application running.');
}]);
})(angular.module('myApp', []));