AngularJS学习之旅—AngularJS 服务(八)
$location vs window.location<table class="reference" style="height: 173px; width: 1043px"> | ? | window.location | $location.service | </tr>
---|
$http?是 AngularJS 应用中最常用的服务。 服务向服务器发送请求,应用响应服务器传送过来的数据。
$timeout?服务对应了 JS?window.setTimeout?函数。
?
$interval?服务对应了 JS?window.setInterval?函数。
<div class="cnblogs_code">
实例
<span style="color: #0000ff"><
<span style="color: #800000">head<span style="color: #0000ff">><span style="color: #0000ff"><<span style="color: #800000">meta <span style="color: #ff0000">charset<span style="color: #0000ff">="utf-8"<span style="color: #0000ff">>
<span style="color: #0000ff"><<span style="color: #800000">script <span style="color: #ff0000">src<span style="color: #0000ff">="js/angular.min.js"<span style="color: #0000ff">></<span style="color: #800000">script<span style="color: #0000ff">>
<span style="color: #0000ff"></<span style="color: #800000">head<span style="color: #0000ff">>
<span style="color: #0000ff"><<span style="color: #800000">body<span style="color: #0000ff">>
<span style="color: #0000ff"><<span style="color: #800000">div <span style="color: #ff0000">ng-app<span style="color: #0000ff">="myApp"<span style="color: #ff0000"> ng-controller<span style="color: #0000ff">="myCtrl"<span style="color: #0000ff">>
<span style="color: #008000">
<span style="color: #0000ff"><<span style="color: #800000">p<span style="color: #0000ff">> 当前页面的url:<span style="color: #0000ff"></<span style="color: #800000">p<span style="color: #0000ff">>
<span style="color: #0000ff"><<span style="color: #800000">h3<span style="color: #0000ff">>{{myUrl}}<span style="color: #0000ff"></<span style="color: #800000">h3<span style="color: #0000ff">>
<span style="color: #0000ff"><<span style="color: #800000">p<span style="color: #0000ff">>该实例使用了内建的 $location 服务获取当前页面的 URL。<span style="color: #0000ff"></<span style="color: #800000">p<span style="color: #0000ff">>
<span style="color: #008000">
<span style="color: #0000ff"><<span style="color: #800000">p<span style="color: #0000ff">>欢迎信息:<span style="color: #0000ff"></<span style="color: #800000">p<span style="color: #0000ff">>
<span style="color: #0000ff"><<span style="color: #800000">h3<span style="color: #0000ff">>{{myWelcome}}<span style="color: #0000ff"></<span style="color: #800000">h3<span style="color: #0000ff">>
<span style="color: #0000ff"><<span style="color: #800000">p<span style="color: #0000ff">> $http 服务向服务器请求信息,返回的值放入变量 "myWelcome" 中。<span style="color: #0000ff"></<span style="color: #800000">p<span style="color: #0000ff">>
<span style="color: #008000">
<span style="color: #0000ff"><<span style="color: #800000">p<span style="color: #0000ff">>两秒后显示信息:<span style="color: #0000ff"></<span style="color: #800000">p<span style="color: #0000ff">>
<span style="color: #0000ff"><<span style="color: #800000">h1<span style="color: #0000ff">>{{myHeader}}<span style="color: #0000ff"></<span style="color: #800000">h1<span style="color: #0000ff">>
<span style="color: #0000ff"><<span style="color: #800000">p<span style="color: #0000ff">>$timeout 访问在规定的毫秒数后执行指定函数。<span style="color: #0000ff"></<span style="color: #800000">p<span style="color: #0000ff">>
<span style="color: #008000">
<span style="color: #0000ff"><<span style="color: #800000">p<span style="color: #0000ff">>现在时间是:<span style="color: #0000ff"></<span style="color: #800000">p<span style="color: #0000ff">>
<span style="color: #0000ff"><<span style="color: #800000">h1<span style="color: #0000ff">>{{theTime}}<span style="color: #0000ff"></<span style="color: #800000">h1<span style="color: #0000ff">>
<span style="color: #0000ff"><<span style="color: #800000">p<span style="color: #0000ff">>$interval 访问在指定的周期(以毫秒计)来调用函数或计算表达式。<span style="color: #0000ff"></<span style="color: #800000">p<span style="color: #0000ff">>
<span style="color: #008000">
<span style="color: #0000ff"><<span style="color: #800000">p<span style="color: #0000ff">>255 的16进制是:<span style="color: #0000ff"></<span style="color: #800000">p<span style="color: #0000ff">>
<span style="color: #0000ff"><<span style="color: #800000">h1<span style="color: #0000ff">>{{hex}}<span style="color: #0000ff"></<span style="color: #800000">h1<span style="color: #0000ff">>
<span style="color: #0000ff"><<span style="color: #800000">p<span style="color: #0000ff">>自定义服务,用于转换16进制数:<span style="color: #0000ff"></<span style="color: #800000">p<span style="color: #0000ff">>
<span style="color: #008000">
<span style="color: #0000ff"><<span style="color: #800000">p<span style="color: #0000ff">>在过滤器中使用服务:<span style="color: #0000ff"></<span style="color: #800000">p<span style="color: #0000ff">>
<span style="color: #0000ff"><<span style="color: #800000">h1<span style="color: #0000ff">>{{255 | myFormat}}<span style="color: #0000ff"></<span style="color: #800000">h1<span style="color: #0000ff">>
<span style="color: #008000">
<span style="color: #0000ff"><<span style="color: #800000">p<span style="color: #0000ff">>在获取数组 [255,251,200] 值时使用过滤器:<span style="color: #0000ff"></<span style="color: #800000">p<span style="color: #0000ff">>
<span style="color: #0000ff"><<span style="color: #800000">ul<span style="color: #0000ff">>
<span style="color: #0000ff"><<span style="color: #800000">li <span style="color: #ff0000">ng-repeat<span style="color: #0000ff">="x in counts"<span style="color: #0000ff">>{{x | myFormat}}<span style="color: #0000ff"></<span style="color: #800000">li<span style="color: #0000ff">>
<span style="color: #0000ff"></<span style="color: #800000">ul<span style="color: #0000ff">>
<span style="color: #0000ff"><<span style="color: #800000">p<span style="color: #0000ff">>过滤器使用服务将10进制转换为16进制。<span style="color: #0000ff"></<span style="color: #800000">p<span style="color: #0000ff">>
<span style="color: #0000ff"></<span style="color: #800000">div<span style="color: #0000ff">>
<span style="color: #0000ff"></<span style="color: #800000">body<span style="color: #0000ff">>
<span style="color: #0000ff"></<span style="color: #800000">html<span style="color: #0000ff">>
<span style="color: #0000ff"><<span style="color: #800000">script<span style="color: #0000ff">>
<span style="background-color: #f5f5f5; color: #0000ff">var<span style="background-color: #f5f5f5; color: #000000"> app <span style="background-color: #f5f5f5; color: #000000">=<span style="background-color: #f5f5f5; color: #000000"> angular.module(<span style="background-color: #f5f5f5; color: #000000">'<span style="background-color: #f5f5f5; color: #000000">myApp<span style="background-color: #f5f5f5; color: #000000">'<span style="background-color: #f5f5f5; color: #000000">,[]);
app.controller(<span style="background-color: #f5f5f5; color: #000000">'<span style="background-color: #f5f5f5; color: #000000">myCtrl<span style="background-color: #f5f5f5; color: #000000">'<span style="background-color: #f5f5f5; color: #000000">,<span style="background-color: #f5f5f5; color: #0000ff">function<span style="background-color: #f5f5f5; color: #000000"> ($scope,$location,$http,$timeout,$interval,hexafy) {
<span style="background-color: #f5f5f5; color: #008000">//<span style="background-color: #f5f5f5; color: #008000">$location服务
<span style="background-color: #f5f5f5; color: #000000"> $scope.myUrl <span style="background-color: #f5f5f5; color: #000000">=<span style="background-color: #f5f5f5; color: #000000"> $location.absUrl();
<span style="background-color: #f5f5f5; color: #008000">//<span style="background-color: #f5f5f5; color: #008000">$http服务
<span style="background-color: #f5f5f5; color: #000000"> $http.get(<span style="background-color: #f5f5f5; color: #000000">"<span style="background-color: #f5f5f5; color: #000000">welcome.json<span style="background-color: #f5f5f5; color: #000000">"<span style="background-color: #f5f5f5; color: #000000">).then(<span style="background-color: #f5f5f5; color: #0000ff">function<span style="background-color: #f5f5f5; color: #000000"> (response) {
$scope.myWelcome <span style="background-color: #f5f5f5; color: #000000">=<span style="background-color: #f5f5f5; color: #000000"> response.data[<span style="background-color: #f5f5f5; color: #000000">0<span style="background-color: #f5f5f5; color: #000000">].name;
});
<span style="background-color: #f5f5f5; color: #008000">//<span style="background-color: #f5f5f5; color: #008000">$timeout服务
<span style="background-color: #f5f5f5; color: #000000"> $scope.myHeader <span style="background-color: #f5f5f5; color: #000000">= <span style="background-color: #f5f5f5; color: #000000">"<span style="background-color: #f5f5f5; color: #000000">Hello World!<span style="background-color: #f5f5f5; color: #000000">"<span style="background-color: #f5f5f5; color: #000000">;
$timeout(<span style="background-color: #f5f5f5; color: #0000ff">function<span style="background-color: #f5f5f5; color: #000000"> () {
$scope.myHeader <span style="background-color: #f5f5f5; color: #000000">= <span style="background-color: #f5f5f5; color: #000000">"<span style="background-color: #f5f5f5; color: #000000">How are you today?<span style="background-color: #f5f5f5; color: #000000">"<span style="background-color: #f5f5f5; color: #000000">;
},<span style="background-color: #f5f5f5; color: #000000">2000<span style="background-color: #f5f5f5; color: #000000">);
<span style="background-color: #f5f5f5; color: #008000">//<span style="background-color: #f5f5f5; color: #008000">$interval 服务
<span style="background-color: #f5f5f5; color: #000000"> $interval(<span style="background-color: #f5f5f5; color: #0000ff">function<span style="background-color: #f5f5f5; color: #000000"> () {
$scope.theTime <span style="background-color: #f5f5f5; color: #000000">= <span style="background-color: #f5f5f5; color: #0000ff">new<span style="background-color: #f5f5f5; color: #000000"> Date().toLocaleTimeString();
},<span style="background-color: #f5f5f5; color: #000000">1000<span style="background-color: #f5f5f5; color: #000000">);
<span style="background-color: #f5f5f5; color: #008000">//<span style="background-color: #f5f5f5; color: #008000">自定义服务
<span style="background-color: #f5f5f5; color: #000000"> $scope.hex <span style="background-color: #f5f5f5; color: #000000">=<span style="background-color: #f5f5f5; color: #000000"> hexafy.myFunc(<span style="background-color: #f5f5f5; color: #000000">255<span style="background-color: #f5f5f5; color: #000000">);
<span style="background-color: #f5f5f5; color: #008000">//<span style="background-color: #f5f5f5; color: #008000">在对象数组中获取值时你可以使用过滤器
<span style="background-color: #f5f5f5; color: #000000"> $scope.counts <span style="background-color: #f5f5f5; color: #000000">=<span style="background-color: #f5f5f5; color: #000000"> [<span style="background-color: #f5f5f5; color: #000000">255<span style="background-color: #f5f5f5; color: #000000">,<span style="background-color: #f5f5f5; color: #000000">251<span style="background-color: #f5f5f5; color: #000000">,<span style="background-color: #f5f5f5; color: #000000">200<span style="background-color: #f5f5f5; color: #000000">];
});
</span><span style="background-color: #f5f5f5; color: #008000">//</span><span style="background-color: #f5f5f5; color: #008000">自定义服务</span>
<span style="background-color: #f5f5f5; color: #000000"> app.service(<span style="background-color: #f5f5f5; color: #000000">'<span style="background-color: #f5f5f5; color: #000000">hexafy<span style="background-color: #f5f5f5; color: #000000">'<span style="background-color: #f5f5f5; color: #000000">,<span style="background-color: #f5f5f5; color: #0000ff">function<span style="background-color: #f5f5f5; color: #000000">() {
<span style="background-color: #f5f5f5; color: #0000ff">this<span style="background-color: #f5f5f5; color: #000000">.myFunc <span style="background-color: #f5f5f5; color: #000000">= <span style="background-color: #f5f5f5; color: #0000ff">function<span style="background-color: #f5f5f5; color: #000000"> (x) {
<span style="background-color: #f5f5f5; color: #0000ff">return<span style="background-color: #f5f5f5; color: #000000"> x.toString(<span style="background-color: #f5f5f5; color: #000000">16<span style="background-color: #f5f5f5; color: #000000">);
}
});
<span style="background-color: #f5f5f5; color: #008000">//<span style="background-color: #f5f5f5; color: #008000">过滤器中,使用自定义服务
<span style="background-color: #f5f5f5; color: #000000"> app.filter(<span style="background-color: #f5f5f5; color: #000000">'<span style="background-color: #f5f5f5; color: #000000">myFormat<span style="background-color: #f5f5f5; color: #000000">'<span style="background-color: #f5f5f5; color: #000000">,[<span style="background-color: #f5f5f5; color: #000000">'<span style="background-color: #f5f5f5; color: #000000">hexafy<span style="background-color: #f5f5f5; color: #000000">'<span style="background-color: #f5f5f5; color: #000000">,<span style="background-color: #f5f5f5; color: #0000ff">function<span style="background-color: #f5f5f5; color: #000000">(hexafy) {
<span style="background-color: #f5f5f5; color: #0000ff">return <span style="background-color: #f5f5f5; color: #0000ff">function<span style="background-color: #f5f5f5; color: #000000">(x) {
<span style="background-color: #f5f5f5; color: #0000ff">return<span style="background-color: #f5f5f5; color: #000000"> hexafy.myFunc(x);
};
}]);
<span style="color: #0000ff"></<span style="color: #800000">script<span style="color: #0000ff">>
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!