AngularJS Deferred Creation
Using $injector to wire up dependencies for objects introduced after initialization
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', []));