2013-08-26 38 views
2

AngularJS框架是否以预定义的顺序执行上述所有内容,或者由程序员完成?AngularJS服务,工厂和供应商的执行顺序?

+0

我会猜测它是基于所请求模块的依赖关系的任意拓扑排序。 –

+0

看看这个答案是否有帮助:[“angularJS $ on event handler trigger order”](http://stackoverflow.com/a/17452084/1095616)。 – Stewie

回答

3

就术语而言,工厂可以生成服务,供应商向请求它们的组件提供服务。如果你的一些服务依赖于其他服务,那么肯定会有一些服务和提供者的替代执行。确保所有这些事情都以正确的顺序发生,以允许所有服务被实例化,这是Angular依赖注入的工作。

要问的一个问题是,为什么你关心工厂函数运行的顺序?如果你正确地声明了你的依赖关系,并且你的服务被适当地分离了,Angular应该为你处理事情。您可能遇到的唯一一个异乎寻常的情况是循环依赖,您可以看到here的一些讨论。

4

提供者和常量是在配置阶段创建的,而工厂,服务和值是在配置阶段之后创建的(因此您不能将它们注入到配置中)。

有没有其他细粒度的差异,据我所知(这意味着你可以假定所有的服务 - 通过我的意思是任何类型的供应商 - 你注入将提供给你)