angularjs如何引用模块加载依赖

时间:2015-09-15 12:19:40

标签: javascript angularjs

我有一个主模块,可以加载ngRoute服务。

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

角度模块加载顺序无关紧要吗?我可以加载任何依赖模块吗?

1 个答案:

答案 0 :(得分:2)

问题是你的app模块正在加载ngRoute,并且还在加载你的app.settings模块,因此依赖关系已经注入你的Angular应用程序,所以没有需要再次注射。

角度模块加载顺序无关紧要吗? 顺序无关紧要Angular首先解析依赖关系,然后编译模块,控制器等。

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

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

但是,如果只加载模块app.settings,则在某些单元测试方案中可能会遇到麻烦,您的测试将失败。但在大多数情况下,您将加载app模块和Angular应用程序的所有主要模块。

我可以加载任何依赖模块吗?简短回答,是的。

答案很长:你的ngRoute依赖项应该加载到主模块中,因为你的app模块需要它来定义基本路由,如果依赖项加载在几个模块中不会抛出任何错误,事实上你应该添加每个模块所需的所有依赖项,因为在大型应用程序中不能保证ngRoute / {{1} } / etc已经加载。

更新以提高可读性