List dependencies injected

有没有办法知道什么依赖被注入到我的Angular模块中?

angular.module('myModule', [
  'ui.bootstrap'
])
.controller('myController', [function () {
  // var dependencies = Magic.dependencies;
  // console.log(dependencies);
}]);

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.


    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/

    链接地址: http://www.djcxy.com/p/27018.html

    上一篇: info.NotFoundError:找不到lapack / blas资源

    下一篇: 列表依赖注入