AngularJS Deferred Creation

Using $injector to wire up dependencies for objects introduced after initialization

by Jeremy Likness

HTML

<div ng-app='myApp'>
    <button ng-click="click()">Click</button>
</div>

JavaScript

(function (app) {

    app.run(['$rootScope', '$injector', function (rs, i) {
        rs.click = function () {
            var myFunc = ['$log', function ($log) {
                $log.log('This dependency wired at runtime.');
            }];
            i.invoke(myFunc);
        };
    }]);
})(angular.module('myApp', []));