2015-09-15 40 views
6

我有一个主模块,负载ngRoute服务。如何angularjs参考模块负载依赖

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

和我app.settings模块没有加载ngRoute服务,

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

但我可以在此模块中使用$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已被加载。

更新以提高可读性