AngularJS 中的服務是一個函數或對象,在AngularJS 中你能夠建立本身的服務,或使用內建服務。javascript
$location 服務,它能夠返回當前頁面的 URL 地址。html
示例:java
代碼:web
<div ng-app="app" ng-controller="ctro"> <p> 當前頁面的url:</p> <b>{{myUrl}}</b> </div> <script> var app = angular.module("app", []); app.controller('ctro',function($scope,$location){ $scope.myUrl=$location.absUrl(); }); </script>
注意 :$location 服務是做爲一個參數傳遞到 controller 中。若是要使用它,須要在 controller 中定義。服務器
爲什麼要使用服務呢?app
$http 是 AngularJS 應用中最經常使用的服務。服務向服務器發送請求,應用響應服務器傳送過來的數據。AngularJS 會一直監控應用,處理事件變化, AngularJS 使用 $location 服務比使用 window.location 對象更好。ide
$http 是 AngularJS 應用中最經常使用的服務。 服務向服務器發送請求,應用響應服務器傳送過來的數據。函數
例如:使用 $http 服務向服務器請求數據:url
welcome.htmlspa
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <h2>歡迎來到perfect*的博客園!!!</h2> </body> </html>
Service.html
<div ng-app="my" ng-controller="con"> <p>歡迎信息:</p> <h1>{{Welcome}}</h1> </div> <script> var app=angular.module("my",[]); app.controller('con',function($scope,$http){ $http.get("welcome.html").then(function(response){ $scope.Welcome=response.data; }); }); </script>
AngularJS $http 是一個用於讀取web服務器上數據的服務。
$http.get(url) 是用於讀取服務器數據的函數。
$http 服務向服務器請求信息,返回的值放入變量 "Welcome" 中。
AngularJS 應用經過 ng-app 定義。應用在 <div> 中執行。
ng-controller 指令設置了 controller 對象 名。
函數 customersController 是一個標準的 JavaScript 對象構造器。
控制器對象有一個屬性: $scope.Welcome。
$http.get() 從web服務器上讀取靜態 html數據。
$timeout服務:
AngularJS $timeout 服務對應了 JS window.setTimeout 函數。
<!--$timeout服務--> <div ng-app="my" ng-controller="con"> <p>歡迎信息:</p> <h1>{{myHeader}}</h1> </div> <script> var app = angular.module('my', []); app.controller('con', function($scope, $timeout) { $scope.myHeader = "Hello World!"; $timeout(function () { $scope.myHeader = "How are you today?"; }, 5000); }); </script>
$interval服務
$interval 訪問在指定的週期(以毫秒計)來調用函數或計算表達式,AngularJS $interval 服務對應了 JS window.setInterval 函數
示例:精簡時鐘
<div ng-app="my" ng-controller="con"> <p>時間:</p> <h2>{{theTime1}}</h2> <p>日期:</p> <h2>{{theTime}}</h2> </div> <script> var app=angular.module("my",[]); app.controller("con",function($scope,$interval){ $scope.theTime=new Date().toLocaleDateString(); $scope.theTime1=new Date().toLocaleTimeString(); $interval(function(){ $scope.theTime1=new Date().toLocaleTimeString(); },1000) }) </script>
上面全部示例的代碼:
1 <!DOCTYPE html> 2 <html > 3 <head> 4 <meta charset="UTF-8"> 5 <title>Service 服務</title> 6 <script type="text/javascript" src="js/angular.min.js" ></script> 7 </head> 8 <body> 9 <!--<div ng-app="app" ng-controller="ctro"> 10 <p> 當前頁面的url:</p> 11 <b>{{myUrl}}</b> 12 13 </div> 14 <script> 15 var app = angular.module("app", []); 16 app.controller('ctro',function($scope,$location){ 17 $scope.myUrl=$location.absUrl(); 18 19 20 21 }); 22 </script>--> 23 24 <!--<div ng-app="my" ng-controller="con"> 25 <p>歡迎信息:</p> 26 <h1>{{Welcome}}</h1> 27 28 29 </div> 30 31 32 <script> 33 var app=angular.module("my",[]); 34 app.controller('con',function($scope,$http){ 35 36 37 $http.get("welcome.html").then(function(response){ 38 39 40 $scope.Welcome=response.data; 41 }); 42 }); 43 44 45 </script>--> 46 47 <!--$timeout服務--> 48 <!--<div ng-app="my" ng-controller="con"> 49 <p>歡迎信息:</p> 50 <h1>{{myHeader}}</h1> 51 52 53 </div> 54 <script> 55 var app = angular.module('my', []); 56 app.controller('con', function($scope, $timeout) { 57 $scope.myHeader = "Hello World!"; 58 $timeout(function () { 59 $scope.myHeader = "How are you today?"; 60 }, 5000); 61 }); 62 63 64 </script>--> 65 66 67 68 69 70 71 72 73 74 75 76 <!--<div ng-app="myApp" ng-controller="myCtrl"> 77 <p> 當前頁面的url:</p> 78 <h3>{{myUrl}}</h3> 79 </div> 80 81 <p>該實例使用了內建的 $location 服務獲取當前頁面的 URL。</p> 82 83 <script> 84 angular.module('myApp', []).controller('myCtrl', function($scope, $location) { 85 $scope.myUrl = $location.absUrl(); 86 }); 87 </script>s 88 --> 89 90 91 <div ng-app="my" ng-controller="con"> 92 <p>時間:</p> 93 <h2>{{theTime1}}</h2> 94 <p>日期:</p> 95 <h2>{{theTime}}</h2> 96 97 98 </div> 99 <script> 100 101 var app=angular.module("my",[]); 102 app.controller("con",function($scope,$interval){ 103 $scope.theTime=new Date().toLocaleDateString(); 104 $scope.theTime1=new Date().toLocaleTimeString(); 105 $interval(function(){ 106 107 $scope.theTime1=new Date().toLocaleTimeString(); 108 },1000) 109 110 111 112 }) 113 </script> 114 115 </body> 116 </html>