javascript - 列出注入(inject)的依赖项

标签 javascript angularjs angularjs-controller angularjs-module

有没有办法知道我的 Angular 模块中注入(inject)了哪些依赖项?

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

最佳答案

在你的 Controller 中,如果你注入(inject)$window,你可以挖掘依赖关系,具体来说,你的模块上存在一个.requires。为此,您可以声明您的 module作为一个全局的 var 所以我们可以在我们的 $window 上找到它,在这种情况下,我们称它为 app - 或者 - 你可以绕过全局变量和 $window 并直接调用 angular.module('myModule').requires

  • 我还添加了 ngRoute 以证明可发现的依赖项数组。


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 - 工作示例


注意 - 如果利用全局变量,您可以像这样简单地调用 window:window.app.requires - 无需注入(inject) $window。但是,请参阅 AngularJS $window docs了解为什么首选 $window

关于javascript - 列出注入(inject)的依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30762327/

相关文章:

javascript - 在部署中实现 strip 支付时出错(Heroku)

javascript 日期加上一些天的问题

javascript - 如何从服务每秒发送 $http.get 请求

angularjs - Controller 的 Angular Jasmine 测试

javascript - 错误 : [ng:areq] from angular controller

javascript - 如何在 JavaScript 或 jquery 中解析这个 json

javascript - 内联 Javascript 破坏了我的 HTML/CSS

javascript - AngularJS 在 Angular 指令中绑定(bind) click 相对于 ng-click 有什么好处?

angularjs - 基于元素属性插值的指令中的动态 templateUrl

javascript - 如何使用ngdialog在angularjs中实现重定向之前的消息?