AngularJS:服务与提供商vs工厂什么是之间的差异Service,Provider并Factory在AngularJS?
4 回答
回首忆惘然
TA贡献1847条经验 获得超11个赞
所有服务都是单身人士 ; 他们每个应用程序实例化一次。它们可以是任何类型,无论是原始类型,对象文字,函数,还是自定义类型的实例。
的value
,factory
,service
,constant
,和provider
方法都是供应商。他们教Injector如何实例化服务。
最详细,但也是最全面的是提供者食谱。在剩下的四个配方类型-价值,工厂,服务,不断- 是在运营商的配方上面只是语法糖。
该值配方是最简单的情况下,如果你自己实例化服务,并提供实例值的注射器。
该工厂配方使喷油器工厂功能时,它需要实例化服务,它调用。调用时,工厂函数创建并返回服务实例。服务的依赖关系作为函数的参数注入。因此,使用此配方可添加以下功能:
能够使用其他服务(具有依赖性)
服务初始化
延迟/延迟初始化
该服务的食谱几乎是一样的工厂配方,但这里的喷油器调用构造函数与新的运营商,而不是一个工厂函数。
该供应商的食谱通常是矫枉过正。它允许您配置工厂的创建,从而增加了一层间接。
仅当您要为应用程序范围的配置公开API时才应使用Provider配方,该API必须在应用程序启动之前进行。这通常仅适用于可重用服务,其行为可能需要在应用程序之间略有不同。
在恒配方是一样的价值食谱但它允许您定义是在现有的服务配置阶段。比使用Value配方创建的服务早。与值不同,它们不能使用
decorator
。
请参阅提供商文档。
添加回答
举报
0/150
提交
取消