亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索
AngularJS教程 / 服務(wù)

服務(wù)

什么是服務(wù)?

在 AngularJS 中,服務(wù)是函數(shù)或?qū)ο螅捎糜诓H限于您的 AngularJS 應(yīng)用程序。

AngularJS 有大約 30 個(gè)內(nèi)置服務(wù)。其中之一是 $location 服務(wù)。

$location 服務(wù)有方法可以返回有關(guān)當(dāng)前網(wǎng)頁位置的信息:

實(shí)例

在控制器中使用 $location 服務(wù):

var app = angular.module('myApp', []);
app.controller('customersCtrl', function($scope, $location) {
    $scope.myUrl = $location.absUrl();
});
運(yùn)行實(shí)例 ?

點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例

請注意,$location 服務(wù)作為參數(shù)傳遞到控制器。為了在控制器中使用該服務(wù),必須將其定義為依賴項(xiàng)。

為什么使用服務(wù)?

對于許多服務(wù),如 $location 服務(wù),您似乎可以使用 DOM 中已有的對象(例如 window.location 對象),但它會有一些限制,至少對于您的 AngularJS 應(yīng)用程序來說是這樣。

AngularJS 不斷監(jiān)督您的應(yīng)用程序,為了使其正確處理更改和事件,AngularJS 更喜歡您使用 $location 服務(wù)而不是 window.location 對象。

$http 服務(wù)

$http 服務(wù)是 AngularJS 應(yīng)用程序中最常用的服務(wù)之一。該服務(wù)向服務(wù)器發(fā)出請求,并讓您的應(yīng)用程序處理響應(yīng)。

實(shí)例

使用 $http 服務(wù)從服務(wù)器請求數(shù)據(jù):

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, $http) {
  $http.get("welcome.htm").then(function (response) {
    $scope.myWelcome = response.data;
  });
});
運(yùn)行實(shí)例 ?

點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例

此例演示了 $http 服務(wù)的非常簡單的用法。請?jiān)?AngularJS Http 教程中了解有關(guān) $http 服務(wù)的更多信息。

$timeout 服務(wù)

$timeout 服務(wù)是 AngularJS 版本的 window.setTimeout 函數(shù)。

實(shí)例

兩秒后顯示新消息:

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, $timeout) {
  $scope.myHeader = "Hello World!";
  $timeout(function () {
    $scope.myHeader = "How are you today?";
  }, 2000);
});
運(yùn)行實(shí)例 ?

點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例

$interval 服務(wù)

$interval 服務(wù)是 AngularJS 版本的 window.setInterval 函數(shù)。

實(shí)例

每秒顯示時(shí)間:

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, $interval) {
  $scope.theTime = new Date().toLocaleTimeString();
  $interval(function () {
    $scope.theTime = new Date().toLocaleTimeString();
  }, 1000);
});
運(yùn)行實(shí)例 ?

點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例

創(chuàng)建您自己的服務(wù)

要創(chuàng)建自己的服務(wù),請將服務(wù)與模塊連接:

創(chuàng)建名為 hexafy 的服務(wù):

app.service('hexafy', function() {
  this.myFunc = function (x) {
    return x.toString(16);
  }
});

要使用您的自定義服務(wù),請?jiān)诙x控制器時(shí)將其添加為依賴項(xiàng):

實(shí)例

使用名為 hexafy 的自定義服務(wù)將數(shù)字轉(zhuǎn)換為十六進(jìn)制數(shù)字:

app.controller('myCtrl', function($scope, hexafy) {
  $scope.hex = hexafy.myFunc(255);
});
運(yùn)行實(shí)例 ?

點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例

在過濾器中使用自定義服務(wù)

創(chuàng)建服務(wù)并將其連接到您的應(yīng)用程序后,您可以在任何控制器、指令、過濾器或甚至其他服務(wù)中使用該服務(wù)。

要在過濾器中使用服務(wù),請?jiān)诙x過濾器時(shí)將其添加為依賴項(xiàng):

過濾器 myFormat 中使用的服務(wù) hexafy:

app.filter('myFormat',['hexafy', function(hexafy) {
  return function(x) {
    return hexafy.myFunc(x);
  };
}]);
運(yùn)行實(shí)例 ?

點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例

您可以在顯示對象或數(shù)組中的值時(shí)使用該過濾器:

<ul>
  <li ng-repeat="x in counts">{{x | myFormat}}</li>
</ul>
運(yùn)行實(shí)例 ?

點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例