服务

02. 八月 2016 AngularJS 0

进军帝都!

服务是在angularJs环境中工作的主力,服务是为web应用程序提供功能的单例对象,例如,web应用程序的一个共同任务是执行web服务器的ajax请求,angularJS提供了HTTP服务,其中包含了用来访问web服务器的所有功能。

服务功能和上下文或状态是完全独立的,因此他可以很容易的被一个应用程序的组件使用,angularJs提供了很多内置的服务组件用于基本的用途,如HTTP请求,日志请求,分析和动画等, 你也可以创建自己的服务,并在你的代码中复用他们。

provider

provider()是创建service最底层的方式,这也是唯一一个可以使用.config()方法配置创建service的方法

运行provider的时候会默认调用this.$get方法

什么时候使用provider()方法
1、当我们希望在应用开始前对service进行配置的时候就需要使用到provider()。比如,我们需要配置services在不同的部署环境里面(开发,演示,生产)使用不同的后端处理的时候就可以使用到了
2、当我们打算发布开源,provider()也是首选创建service的方法,这样就可以使用配置的方式来配置services而不是将配置数据硬编码写到代码里面。

比如说配置一个计算功能的服务

factory

Angular里面创建service最简单的方式是使用factory()方法。

工厂函数定义服务,调用该工厂函数将返回服务实例

factory()让我们通过返回一个包含service方法和数据的对象来定义一个service。在service方法里面我们可以注入services,比如 $http 和 $q等。

什么时候使用factory()方法

在service里面当我们仅仅需要的是一个方法和数据的集合且不需要处理复杂的逻辑的时候,factory()是一个非常不错的选择。

注意:需要使用.config()来配置service的时候不能使用factory()方法

service

service()通过构造函数的方式让我们创建service,我们可以使用原型模式替代javaScript原始的对象来定义service。

和factory()方法一样我们也可以在函数的定义里面看到服务的注入

这里的功能和使用factory()方法的方式一样,service()方法会持有构造函数创建的对象

  • 什么时候适合使用service()方法

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

constant

常量 ,可以使用config配置

 value  

常量  不可配置

provider是可配置的默认调用$get方法,factory返回的是对象,service直接给当前的实例添加属性,constant常量可以进行配置,value不可配置  


发表评论

电子邮件地址不会被公开。