List dependencies injected
Asked Answered
G

2

7

Is there a way to know what dependencies were injected into my Angular module?

angular.module('myModule', [
  'ui.bootstrap'
])
.controller('myController', [function () {
  // var dependencies = Magic.dependencies;
  // console.log(dependencies);
}]);
Glendoraglendower answered 10/6, 2015 at 16:37 Comment(0)
H
2

In your controller, if you inject $window, you can dig for the dependencies, specifically, there exists a .requires on your module. To do this, you can either declare your module as a global var so we can find it on our $window, in this case, let's call it app - or - you can bypass globals and $window and call angular.module('myModule').requires directly.

  • I've added ngRoute as well to prove the array of dependencies that will be discoverable.


var app = angular.module('myModule',
[
    'ui.bootstrap',
    'ngRoute'
]).controller('ctrl', ['$scope', '$window', function($scope, $window) {
    console.log($window.app.requires) // ["ui.bootstrap", "ngRoute"]
    console.log(angular.module('myModule').requires) // without global - $window not needed
}]);

JSFiddle Link - working example


Note - If leveraging globals, you can simply call the window as such: window.app.requires - without injecting $window. However, see the AngularJS $window docs to understand why $window is preferred.

Harragan answered 10/6, 2015 at 17:28 Comment(0)
B
1

Building on @salniro's answer, you don't need globals, or $window.

The dependencies are listed on the .requires property of angular.Module:

angular.module('myModule', [
    'ui.bootstrap',
    'ngRoute'
])
.controller('ctrl', function() {
    var app = angular.module('myModule');
    console.log(app.requires); // ["ui.bootstrap", "ngRoute"]
});

http://jsfiddle.net/8vtf6gar/1/

Boulogne answered 10/6, 2015 at 17:37 Comment(2)
Zach thanks for your feedback. I have updated my answer with your findings since this was a minor alternative. I appreciate you looking into this as wellHarragan
Sure thing. Thanks for providing the answer! Never knew this was possibleBoulogne

© 2022 - 2024 — McMap. All rights reserved.