2015-09-15 10 views
6

Mam moduł główny, który ładuje usługę ngRoute.sposób zależności obciążenia modułu odwołań Angularjs

angular.module("app", ["ngRoute", "app.settings"] 

i mój moduł app.settings nie ładuje ngRoute obsługę,

angular.module("app.settings", []) 
    .config(["$routeProvider", function($routeProvider){ 
     $routeProvider.when("/settings", { 
      template: "{{message}}", 
      controller:"SettingsController" 
     }); 
}]) 

Ale mogę używać $routeProvider w tym module.

Czy obchodzenie się z modułem kątowym nie obchodzi? Czy mogę załadować dowolną zależność dowolnego modułu?

Odpowiedz

2

Chodzi o to, że moduł app ładuje ngRoute, a także ładuje moduły app.settings, więc zależność jest już wstrzykiwany do swojej Kątowymi aplikacji, więc nie ma potrzeby, aby ponownie wstrzykiwana.

Czy nie ma znaczenia kolejność załadunku modułu kątowego? Kolejność nie ma znaczenia kątowa najpierw rozwiązać zależności i następnie kompiluje moduły, sterowniki itd

angular.module("app", ["ngRoute", "app.settings"] 

jest taka sama jak

angular.module("app", ["app.settings", "ngRoute"] 

Jednak można się problemy w niektórych testów jednostkowych scenariusze, jeśli załadujesz tylko moduł app.settings Twój test się nie powiedzie. Ale w większości przypadków załadujesz moduł app i wszystkie główne moduły twojej aplikacji Angular.

Czy mogę załadować dowolną zależność dowolnego modułu? Krótka odpowiedź, tak.

Długa odpowiedź: Twoja zależność ngRoute powinna być załadowana do modułu głównego, ponieważ jest to coś, co Twój moduł app będzie potrzebował do zdefiniowania podstawowego routingu, jeśli zależność jest załadowana w kilku modułach, nie spowoduje żadnego błędu , w rzeczywistości powinieneś dodać wszystkie zależności wymagane przez każdy moduł, ponieważ w dużych aplikacjach nie ma gwarancji, że ngRoute/myFactory/etc jest już załadowany.

Aktualizacja w celu poprawienia czytelności

Powiązane problemy