2015-09-15 4 views
6

私はngRouteサービスをロードするメインモジュールを持っています。angularjsのリファレンスモジュールの負荷依存性の度合い

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

と私app.settingsモジュールは

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

ngRouteサービスを、ロードされていません。しかし、私は、このモジュールで$routeProviderを使用することができます。

角モジュールのロード順序は関係ありませんか?どのモジュールにも依存関係をロードできますか?

答えて

2

事はあなたappモジュールがngRouteをロードしている、とも依存関係がすでにアンギュラアプリケーションに注入されるように、あなたのapp.settingsモジュールをロードしているので、再び注入させる必要がないということです。

角モジュールのロード順序は気にしませんか?は、角度最初の依存関係を解決は問題としないためには、あなたには、いくつかのユニットテストでトラブルに実行することができますしかし

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

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

と同じですモジュール、コントローラなどをコンパイルし モジュールapp.settingsのみをロードすると、テストが失敗します。しかし、ほとんどの場合、appモジュールとAngularアプリケーションのすべてのメインモジュールをロードします。

どのモジュールにも依存関係をロードできますか?短い答え、はい。

長い答え:あなたのngRoute依存関係は、あなたのappモジュールが基本的なルーティングを定義するために必要とするものなので、メインモジュールにロードする必要があります。もし、依存関係がいくつかのモジュールにロードされていれば、実際にはの場合は、大規模アプリケーションでがあるので、各モジュールに必要なすべての依存関係を追加する必要があります。ngRoute/myFactory/etcが既にロードされているという保証はありません。

可読性

を改善するアップデート
関連する問題