一:Angular中的服务是什么?
- AngularJS 中你可以创建自己的服务,或使用内建服务;
- 在 AngularJS 中,服务是一个函数或对象,可在你的 AngularJS 应用中使用;
- AngularJS 内建了30 多个服务
- 有个 $location 服务,它可以返回当前页面的 URL 地址;
注意:注意 $location 服务是作为一个参数传递到 controller 中。如果要使用它,需要在 controller 中定义
例如:
angular.module('myApp',[]).controller('myCtrl',function($scope,$location){
$scope.myUrl = $location.absUrl();
console.log($location);
})
二:为什么使用服务?
在很多服务中,比如 $location
服务,它可以使用 DOM 中存在的对象,类似 window.location
对象,但 window.location
对象在 AngularJS 应用中有一定的局限性。
AngularJS 会一直监控应用,处理事件变化, AngularJS 使用 $location
服务比使用 window.location
对象更好。
$location和window.location的利弊
三:$http服务?
该服务向服务器发送请求,应用响应服务器传送过来的数据。
js代码:
angular.module('myApp',[]).controller('myCtrl',function($scope,$http){
$http.get('datas.json').then(function(response){
console.log(response.data)
})
})
json代码:
{
"programmers": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "bbbb" },
{ "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" }
],
"name" : "bangbang"
}
四:$timeout
和$interval
服务
$Timeout
服务对应了 JS 中的window.setTimeout
函数。
$interval
服务对应了 JS window.setInterval 函数。
例如:
angular.module('myApp',[]).controller('myCtrl',function($scope,$interval){
$scope.theTime = new Date().toLocaleTimeString();
$interval(function(){
$scope.theTime = new Date().toLocaleTimeString();
},1000);
})