7

Czy istnieje sposób sprawdzenia, jakie zależności zostały wstrzyknięte do mojego modułu Angular?Lista zależności wstrzykniętych

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

Odpowiedz

2

W kontrolerze, jeśli wstrzyknąć $window można kopać zależności, w szczególności, istnieje .requires na module. Aby to zrobić, możesz albo zadeklarować swój module jako globalny var, abyśmy mogli go znaleźć na naszej $window, w tym przypadku, nazwijmy to app - lub - możesz ominąć globale i $window i zadzwonić bezpośrednio pod angular.module('myModule').requires.

  • Dodałem również ngRoute, aby udowodnić zestaw zależności, które będą możliwe do wykrycia.


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 - przykład pracy


Uwaga - Jeśli wykorzystujących globalnych, można po prostu zadzwonić do window jako takie: window.app.requires - bez wstrzykiwania $window. Zobacz jednak AngularJS $window docs, aby zrozumieć, dlaczego jest preferowany.

1

Budując na @salniro's answer, nie potrzebujesz globali ani $window.

Zależności są notowane na własność angular.Module.requires:

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/

+0

Zach dzięki za opinię. Zaktualizowałem swoją odpowiedź z twoimi ustaleniami, ponieważ była to niewielka alternatywa. Doceniam, że dobrze się z tym zapoznajesz – scniro

+0

Pewnie. Dzięki za udzielenie odpowiedzi! Nigdy nie wiedziałem, że to możliwe –

Powiązane problemy