AngularJS系列(四)——服务
2017-09-08 14:29
190 查看
服务是一个函数或对象,可在AngularJS应用中使用。可以和后台中的service去理解。
<div ng-app="myApp"ng-controller="myCtrl">
<p> 当前页面的url:</p>
<h3>{{myUrl}}</h3>
</div>
<p>该实例使用了内建的 $location 服务获取当前页面的 URL。</p>
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope,$location) {
$scope.myUrl= $location.absUrl();
})
</script>
<div ng-app="myApp"ng-controller="myCtrl">
<p>欢迎信息:</p>
<h1>{{myWelcome}}</h1>
</div>
<p> $http 服务向服务器请求信息,返回的值放入变量 "myWelcome" 中。</p>
<div ng-app="myApp"ng-controller="myCtrl">
<p>两秒后显示信息:</p>
<h1>{{myHeader}}</h1>
</div>
<p>$timeout 访问在规定的毫秒数后执行指定函数。</p>
<div ng-app="myApp"ng-controller="myCtrl">
<p>现在时间是:</p>
<h1>{{theTime}}</h1>
</div>
<p>$interval 访问在指定的周期(以毫秒计)来调用函数或计算表达式。</p>
在controller中创建并使用服务
<div ng-app="myApp"ng-controller="myCtrl">
<p>255 的16进制是:</p>
<h1>{{hex}}</h1>
</div>
<p>自定义服务,用于转换16进制数:</p>
<script>
var app = angular.module('myApp', []);
app.service('fd', function () {
this.toCase= function (x) {
returnx.toString(16);
}
});
app.controller('myCtrl', function ($scope,fd){
$scope.hex= fd.toCase(255)
})
</script>
在filter中使用服务
<div ng-app="myApp">
在过滤器中使用服务:
<h1>{{255 | myFormat}}</h1>
</div>
<script>
var app = angular.module('myApp', []);
app.service('hexafy', function() {
this.myFunc= function (x) {
return x.toString(16);
}
});
app.filter('myFormat', ['hexafy',function(hexafy){
returnfunction (text) {
returnhexafy.myFunc(text);
}
}])
</script>
$location
$location,和js中的location作用相似,下面是返回当前页面URL的实例<div ng-app="myApp"ng-controller="myCtrl">
<p> 当前页面的url:</p>
<h3>{{myUrl}}</h3>
</div>
<p>该实例使用了内建的 $location 服务获取当前页面的 URL。</p>
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope,$location) {
$scope.myUrl= $location.absUrl();
})
</script>
$http服务
$http服务是AngularJS应用中最常用的服务。服务向服务器返送请求,应用响应服务器传送过来的数据。get访问请求实例<div ng-app="myApp"ng-controller="myCtrl">
<p>欢迎信息:</p>
<h1>{{myWelcome}}</h1>
</div>
<p> $http 服务向服务器请求信息,返回的值放入变量 "myWelcome" 中。</p>
<script> var app = angular.module('myApp', []); app.controller('myCtrl', function($scope,$http) { $http.get('welcome.htm').then(function(response) { $scope.myWelcome= response.data }) }) </script>
$timeout 服务
AngularJS $timeout 服务对应了 JSwindow.setTimeout 函数。<div ng-app="myApp"ng-controller="myCtrl">
<p>两秒后显示信息:</p>
<h1>{{myHeader}}</h1>
</div>
<p>$timeout 访问在规定的毫秒数后执行指定函数。</p>
<script> var app = angular.module('myApp', []); app.controller('myCtrl', function ($scope,$timeout) { $scope.myHeader= "Hello World"; $timeout(function(){ $scope.myHeader= "Hello JS"; },3000) }) </script>
$interval 服务
AngularJS $interval 服务对应了 JSwindow.setInterval 函数。<div ng-app="myApp"ng-controller="myCtrl">
<p>现在时间是:</p>
<h1>{{theTime}}</h1>
</div>
<p>$interval 访问在指定的周期(以毫秒计)来调用函数或计算表达式。</p>
<script> var app = angular.module('myApp', []); app.controller('myCtrl', function ($scope,$interval) { $scope.theTime= new Date().toLocaleString(); $interval(function() { $scope.theTime= new Date().toLocaleString(); },1000); }) </script>
自定义服务
创建访问自定义服务,链接到你的模块中在controller中创建并使用服务
<div ng-app="myApp"ng-controller="myCtrl">
<p>255 的16进制是:</p>
<h1>{{hex}}</h1>
</div>
<p>自定义服务,用于转换16进制数:</p>
<script>
var app = angular.module('myApp', []);
app.service('fd', function () {
this.toCase= function (x) {
returnx.toString(16);
}
});
app.controller('myCtrl', function ($scope,fd){
$scope.hex= fd.toCase(255)
})
</script>
在filter中使用服务
<div ng-app="myApp">
在过滤器中使用服务:
<h1>{{255 | myFormat}}</h1>
</div>
<script>
var app = angular.module('myApp', []);
app.service('hexafy', function() {
this.myFunc= function (x) {
return x.toString(16);
}
});
app.filter('myFormat', ['hexafy',function(hexafy){
returnfunction (text) {
returnhexafy.myFunc(text);
}
}])
</script>
相关文章推荐
- AngularJS 1.x系列:AngularJS服务-Service、Factory、Provider、Value及Constant(5)
- AngularJS系列——作用域、控制器、模块和服务
- AngularJS 服务
- SpringCloud系列七:Hystrix 熔断机制(Hystrix基本配置、服务降级、HystrixDashboard服务监控、Turbine聚合监控)
- iOS开发系列之一--通讯录、蓝牙、内购、GameCenter、iCloud、Passbook系统服务开发汇总
- OSGI系列 WebService发布服务
- angularJS中$http服务参数无序化问题
- 小马哥Java 微服务实践 - Spring Cloud 系列
- angularjs依赖服务注入写法的注意点
- wcf系列学习5天速成——第五天 服务托管
- Netty系列之Netty百万级推送服务设计要点
- iOS开发系列--通讯录、蓝牙、内购、GameCenter、iCloud、Passbook系统服务开发汇总
- WCF开发实战系列二:使用IIS发布WCF服务
- Java日志服务入门系列教程——(2)Apache log4j入门
- angularJS——自定义服务provider之$get
- Nginx系列(三.nginx注册为linux系统服务)
- AngularJs的resource服务与Rest服务交互
- 使用ASP.NET WEB API构建基于REST风格的服务实战系列教程(一)——使用EF6构建数据库及模型
- J360-cloud SpringCloud系列二:服务发现Discovery Service