Javascript AngularJS依赖注入顺序

Javascript AngularJS依赖注入顺序,javascript,angularjs,mean-stack,Javascript,Angularjs,Mean Stack,我正在通过一本电子书学习整个平均堆栈,在使用angular时遇到了一个奇怪的问题 具体地说,我是在我的应用程序中添加角度路由来呈现一个模板。起初,我无法让它工作,并多次检查代码以查找可能出现的任何错误。最后,我键入了主应用程序模块的两个依赖项的顺序,与书中显示的不同 这不起作用 var mainApplicationModule = angular.module(mainApplicationModuleName, ['example', 'ngRoute']); 这起作用了 var main

我正在通过一本电子书学习整个平均堆栈,在使用angular时遇到了一个奇怪的问题

具体地说,我是在我的应用程序中添加角度路由来呈现一个模板。起初,我无法让它工作,并多次检查代码以查找可能出现的任何错误。最后,我键入了主应用程序模块的两个依赖项的顺序,与书中显示的不同

这不起作用

var mainApplicationModule = angular.module(mainApplicationModuleName, ['example', 'ngRoute']);
这起作用了

var mainApplicationModule = angular.module(mainApplicationModuleName, ['ngRoute', 'example']);

所以我没有什么问题,但我想知道是否有人能解释为什么会这样?我还没有找到任何关于依赖声明顺序的重要信息。如果有帮助的话,我可以发布更多的代码。

这来自布拉德·戴利(Brad Dayley)关于这个主题的书。 顺序很重要,因为要注入的模块(依赖项)列表必须按“必需”的顺序排列。因此,如果
example
模块需要
ngRoute
,则
ngRoute
必须在
example
之前

angular.module()方法使用以下语法:

angular.module(名称,[requires],[configFn])

name参数是模块在喷油器服务中注册时使用的名称。requires参数是添加到此模块使用的喷油器服务中的模块名称数组


这种解释确实需要回答在更复杂的情况下,循环模块引用的可能性。下面是David M.Karr对此的一些说明。

这可能是无关的,但您的模块名称是字符串吗?是的。为什么要问?我喜欢你的问题…教程不会在
angular.module()
的“requires”参数中展开模块的“顺序”。