1.angular Service(服务)
描述:在angularJS框架中,服务Service就是提供给APP数据模型的全局变量
而服务存在的目的就是对各个controller之间的交互提供了一个途径
说明:
1)在angular变量中服务是一个名词
2)在angular变量中由于controller作用域的问题,平级作用于之间无法相互沟通,而在开始发过程中controller之间的沟通无法避免,为了解决这个问题,angular框架提出了service功能。使用service需要注入实现,注入则相当于声明。
3)在angular框架中存在多种服务,有系统服务,自定义服务,同时也存在多种不同的变量:系统自带的全局变量,自定义全局变量,
rootscope:系统提供的存在于整个APP数据模型中的全局变量,所有的controller中都能够访问到$rootscope
2.系统服务$http
描述:angular框架中对APP数据模型直接内置了一个,用于处理网络功能的这个服务就是http,可以基本认为带有¥符号的服 务都是系统直接提供的。【一般为了区别于系统服务,自定义的服务前都不加$做前缀】
语法:以为$http是系统直接提供的服务,所以不需要手动定义服务内容,而是通过在直接注入的 方式加载到想要使用网络多功能的controller之中即可
注意:对controller注入的$http服务后,只能说明在这个controller中可以发送网络请求,但并不意味着已经发送了请求,具体内容需要自己创建
注:get和post发送方法中有所不同,post中除了method和URL还有headers json文件固定格式
3.过滤服务器$fitter(修饰作用)
描述:$fitter服务在angular框架中,表示丢数据的一种转换。
使用$fitter服务能过使得页面中呈现的内容表现为不同的样式
语法:{{ 任意内容 | 修饰器}}
类型:
在angular中系统对$filter服务提供了以下几种修饰器
1)***|currency:‘货币符号’
用于将显示的内容格式转化为货币格式
ps:currency默认转化格式是美元,可以在语法中对货币符号进行定义
2)***| filter:子集数组
用于从一个数组中,筛选出符合子集数组要求的数组结果,类似于输入提示,正则检测之类的功能
3)*** | lowercase
*** | uppercase
用于格式内容的大小写转换,但只对英文有效
4)*** | orderBy:‘表达式’
用于根据表达式进行数组排序,一般本修饰器用在ng-repeat中
5.自定义过滤修饰器
描述:直接通过对APP数据模型,调用.filter()进行自定义过滤服务
自定义的过滤服务可以直接通过注入的方式在controller中使用
语法:
app.filter(‘自定义过滤修饰器的名称’,function(){
return function(text){
功能代码
}
});
6.时间轴服务,$interval $timeout
描述:时间轴服务共有三种不同的服务内容,其语法的本质与bom中的间隔调用函数与延迟调用函数基本没有区别
7.观测服务:$watch
描述:$watch虽然我们称之为服务,但事实上他是最特殊的同一个,因为这个服务不需要手动注入即可使用,他的任务是监听任何想要监听的内容变化时自动执行回调函数
说明:可以在任何时刻,控制器中的任何位置直接在使用他们
语法:$scope.$watch(angular表达式或变量或字符串,回调函数);
7.自定义服务
描述:自定义服务就是需要开发者自己手动编写服务内容,并注入后才能使用的全局变量
说明:自定义服务有很多种写法,常见的有以下五种写法
1)value服务
2)constant服务
3)factory服务
4)service服务
5)provider服务
补充:五种写法所创建的自定义服务的目的基本相同,都是通过提供一种途径来使得controller来进行交互的方法,但每一种写法都会赋予自定义服务略微不同的特征,在不同的环境下需要结合实际情况决定使用哪一种
2)constant服务
描述:constant服务是通过.constant()方法对app数据模型进行扩充的方式
constant的内容可以是任何合法的数据局结构
3)factory服务
描述:factory是通过.factory方法创建一个object结构并返回,这个object结构充当了一个全局变量,在各个controller之间传递信息
语法:app.factory(‘服务名称’,function(){
var obj = {};
return obj{};
});
说明:乍一看factory服务和value服务功能相同,甚至factory功能没有value功能强大,但是不同点在于factory创建服务时,对象是在函数内创建的
4)service服务
service服务相当于本身一斤创建了一个空白对象,所有的内容操作通过this.来完成。
5)provider服务
描述:provider服务通过对APP数据模型进行调用.provider()方法进行扩充,并在参数内部通过this.$get获取