AngularJS服务
在AngularJS中,服务是一个函数或者对象,可以在AngularJS应用中使用;也可以自己创建自定义服务。
浏览器自带api与AngularJS服务的区别
浏览器api | AngularJS服务 | |
目的 | ||
ap | ||
是否在AngularJS应用生命周期中和应用整合 | 否 | 可以获取到应用生命周的每一个阶段,并且和¥watch整合,让AngularJS可以监控应用,处理事件变化,普通的dom对象是不能在Angular应用生命周期和应用整合 |
是否和HTML5 API的无缝整合 | 否 | 是 |
和应用的上下文是否相关 | 否 | 是 |
AngularJS提供了大约30多种的服务,下面简单介绍一些服务。服务的一般用法如下:
var app=angular.module("demo",[]);
app.controller("mycontroller",function($scope,$location){
$scope.myUrl=$location.absUrl();
});
$location服务:允许对当前浏览器位置进行读写操作。
$http服务:服务想服务器发送请求,应用响应服务器返回的数据。如下例子:
var app=angular.module("demo",[]);
app.controller("mycontroller",function($scope,$http){
$http.get("data.json").then(function(resone){
$scope.myWelcome=respone.name;
});
});
$timeout服务:该服务对应JavaScript中的window.setTimeout函数。
$interval服务:对应window.setInterval函数。
$watch服务:持续监听数据上的变化,更新界面。用法如下:
<div ng-app="demo" ng-controller="myController">
<input type="text" ng-model="firstName"></input>
<input type="text" ng-model="lastName"></input>
<h1>{{firstname+" "+lastName}}</h1>
<h2>{{fullName}}</h2>
</div>
<script>
var app=angular.module('demo',[]);
app.controller("myController",function($scope){
$scope.lastName="qiang";
$scope.firstName="li";
$scope.$watch('lastName',function($scope){
$scope.fullName=$scope.lastName+" "+$scope.firstName;
});
$scope.$watch(‘firstName’,function($scope){
$scope.fullName=$scipe.lastName+$scope.firstName;
});
});
</script>
自定义服务:可以创建自定义服务链接到你的模块中;如下例子:
app.service("toString",function(){
this.myFunc=function(x){
return x.toString();
}
});
如果要使用自定义的服务,需要在定义控制器的时候独立添加,设置依赖项
app.controller("demo",function($scope,toString){
$scope.hex=toString.myFunc(244);
});
当你创建自定义服务之后,并链接到你的应用上,你就可以在控制器、指令、过滤器或者是其他服务中使用它了。