2015-09-15 2 views
6

Ich habe ein Hauptmodul, das ngRoute Service lädt.Wie angularjs Referenzmodul Lastabhängigkeit

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

und mein app.settings Modul wird nicht geladen ngRoute Service,

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

Aber ich $routeProvider in diesem Modul nutzen können.

Ist die angulare Modulbeladung nicht wichtig? Kann ich irgendeine Abhängigkeit irgendein Modul laden?

Antwort

2

Die Sache ist, dass Ihr app Modul die ngRoute wird geladen, und auch Ihre app.settings Module wird geladen, so dass die Abhängigkeit bereits in Ihre Angular Anwendung injiziert wird, so gibt es keine Notwendigkeit, wieder injiziert.

Ist die angulare Modulladeordnung nicht wichtig? Die Reihenfolge Angular zuerst die Abhängigkeiten auflösen spielt keine Rolle, und stellt dann die Module, Steuerungen usw.

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

ist die gleiche wie

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

auch immer Sie in Schwierigkeiten in einigen Unit Test laufen kann Szenarien, wenn Sie nur das Modul app.settings laden, wird Ihr Test fehlschlagen. In den meisten Fällen laden Sie jedoch das Modul app und alle Hauptmodule Ihrer Angular-Anwendung.

Kann ich irgendeine Abhängigkeit irgendein Modul laden? Kurze Antwort, ja.

Lange Antwort: Ihre ngRoute Abhängigkeit sollte in das Hauptmodul geladen werden, weil es etwas ist, das Ihr app Modul benötigt, um das grundlegende Routing zu definieren, wenn die Abhängigkeit in mehreren Modulen geladen wird, wird keinen Fehler werfen in der Tat sollten Sie alle Abhängigkeiten hinzufügen, die von jedem Modul benötigt werden, weil in großen Anwendungen gibt es keine Garantie, dass die ngRoute/myFactory/etc bereits geladen ist.

aktualisieren Lesbarkeit

zu verbessern