有没有办法知道哪些依赖项被注入我的Angular模块?
angular.module('myModule',[ 'ui.bootstrap' ]) .controller('myController',[function () { // var dependencies = Magic.dependencies; // console.log(dependencies); }]);
解决方法
在你的控制器中,如果你注入$window,你可以挖掘依赖关系,特别是你的模块上存在.requires.要做到这一点,你可以将你的
module声明为全局var,这样我们就可以在$window上找到它,在这种情况下,让我们称之为app – 或 – 你可以绕过全局和$window并调用angular.module(‘myModule ‘).直接要求.
>我还添加了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.app.requires – 不注入$window.但是,请参阅AngularJS $window docs以了解为什么$window是首选.