AngularJS依赖项注入顺序

Order of AngularJS dependency injection

本文关键字:顺序 注入 依赖 AngularJS      更新时间:2023-09-26

我正在阅读一本电子书来学习整个MEAN堆栈,在使用angular时遇到了一个奇怪的问题。

具体来说,我在应用程序中添加了角度路由来渲染模板。一开始我无法让它工作,我反复检查了几次代码,寻找我可能犯的任何错误。最后,我为主应用程序模块键入了两个依赖项的顺序,这与书中显示的不同。

这不起作用

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

这起作用

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

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

这来自Brad Dayley关于主题的书。顺序很重要,因为要注入的模块(依赖项)的列表必须是"0"的顺序;所需";。因此,如果example模块需要ngRoute,则ngRoute必须在example之前。

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

angular.module(name, [requires],[configFn])

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

这种解释确实要求回答在更复杂的情况下循环模块引用的可能性。以下是大卫·M·卡尔的回答链接。