AngularJs几种服务区别

provider()一个可配置的、有复杂逻辑的服务。如果你传递了一个对象,那么它应该有一个叫$get的函数返回这个这个服务的实例。否则的话,Angular 假设你已经产生了一个构造函数,当被调用时,创建这个实例

使用场景

1.当我们希望在应用开始前对service进行配置的时候就需要使用到provide()。比如,我们需要配置service在不同的部署环境里面(开发,演示,生产)使用不同的后端处理的时候就可以使用到了。

2. 当我们打算发布开源provide()也是首选创建service的方法,这样就可以使用配置的方式来配置service而不是将配置数据硬编码写到代码里面。

factory()一个不可配置的、简单逻辑的服务。你指定一个函数,当被调用时,返回服务实例

使用场景

在service里面当我们仅仅需要的是一个方法和数据的集合且不需要处理复杂的逻辑的时候,factory()是一个非常不错的选择。注意:需要使用.config()来配置service的时候不能使用factory()方法

service()一个不可配置的、复杂逻辑的服务。有点类似于带构造函数的 provider,Angular 调用它来创建服务实例。

service()方法很适合使用在功能控制比较多的service里面 

你可能感兴趣的:(AngularJs几种服务区别)