AngularJS 服务本质上是一个JS对象,当然包括函数.
大约有30个内置服务对象.
支持用户自定义服务.
如:
1. $location服务
类似与window.location,但是AngularJS应用程序中推荐使用自带的$location对象.
下面例子利用$location对象获取当前页面的url.
<div ng-app="myApp" ng-controller="myCtrl">
The url of current page is:
<h1>{{myUrl}}</h1>
</div>
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, $location) {
$scope.myUrl = $location.absUrl();
})
</script>
2. $http服务
是AngularJS中经常使用的一种服务,主要是向服务器端发送请求,AngularJS再处理返回消息.
3. $timeout服务
类似于window.setTimeout函数.
如下例,设置延迟两秒显示消息:
<div ng-app="myApp" ng-controller="myCtrl">
<h1>{{msg}}</h1>
</div>
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, $timeout) {
$timeout(function() {
$scope.msg = "hello world";
}, 2000);
});
</script>
4. $interval服务
类似于window.setInterval函数
5. 自定义服务
利用service函数,例如创建一个服务toHexStr,作用是将数字转换成16进制的字符串
<div ng-app="myApp" ng-controller="myCtrl">
<h1>{{hex}}</h1>
</div>
<script>
var app = angular.module('myApp', []);
app.service('toHexStr', function() {
this.myFunc = function(x) {
return x.toString(16);
}
});
app.controller('myCtrl', function($scope, toHexStr) {
$scope.hex = toHexStr.myFunc(255);
});
</script>
如果想在过滤器中使用自定义服务,在创建过滤器时应该将自定义的服务作为依赖.