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);

});

当你创建自定义服务之后,并链接到你的应用上,你就可以在控制器、指令、过滤器或者是其他服务中使用它了。

posted @ 2017-11-06 14:20  VarForrest  阅读(113)  评论(0编辑  收藏  举报