AngularJS service
- Forrige side AngularJS filter
- Næste side AngularJS Http
I AngularJS kan du oprette dine egne tjenester eller bruge en af de mange indbyggede tjenester.
Hvad er en tjeneste?
I AngularJS er tjenester funktioner eller objekter, der kan bruges og kun bruges i din AngularJS-applikation.
AngularJS har omkring 30 indbyggede tjenester. En af dem er $location
tjenesten.
$location
Tjenesten har metoder, der kan returnere oplysninger om den aktuelle websides placering:
Eksempel
Brug af $location-tjenesten i kontrolleren:
var app = angular.module('myApp', []); app.controller('customersCtrl', function($scope, $location) { $scope.myUrl = $location.absUrl(); });
Bemærk,$location
Tjenester overføres som parametre til kontrolleren. For at bruge tjenesten i kontrolleren, skal den defineres som en afhængighed.
Hvorfor bruge tjenester?
For mange tjenester som $location
tjenesten, hvor du kan bruge objekter, der allerede findes i DOM'en (f.eks. window.location-objektet),men det vil være nogle begrænsninger, mindst for din AngularJS-applikation.
AngularJS overvåger konstant din applikation, og for at sikre, at den håndterer ændringer og begivenheder korrekt, foretrækker AngularJS, at du bruger $location
tjenesten i stedet for window.location-objektet.
$http-tjenesten
$http
Tjenesten er en af de mest almindelige tjenester i AngularJS-applikationer. Tjenesten sender anmodninger til serveren og lader din applikation håndtere svarene.
Eksempel
Brug $http-tjenesten til at anmode om data fra serveren:
var app = angular.module('myApp', []); app.controller('myCtrl', function($scope, $http) { $http.get("welcome.htm").then(function (response) { $scope.myWelcome = response.data; }); });
Dette eksempel viser $http
er meget simpel at bruge. Læs mere om $http tjenesten i AngularJS Http vejledning.
$timeout tjenesten
$timeout
tjenesten er AngularJS versionen af window.setTimeout
funktion.
Eksempel
Vis nyt besked efter to sekunder:
var app = angular.module('myApp', []); app.controller('myCtrl', function($scope, $timeout) { $scope.myHeader = "Hello World!"; $timeout(function () { $scope.myHeader = "How are you today?"; }, 2000); });
$interval tjenesten
$interval
tjenesten er AngularJS versionen af window.setInterval
funktion.
Eksempel
Vis klokkeslæt hvert sekund:
var app = angular.module('myApp', []); app.controller('myCtrl', function($scope, $interval) { $scope.theTime = new Date().toLocaleTimeString(); $interval(function () { $scope.theTime = new Date().toLocaleTimeString(); }, 1000); });
Opret din egen tjeneste
For at oprette din egen tjeneste skal du tilknytte tjenesten til modulet:
Opret en tjeneste ved navn hexafy
tjenesten:
app.service('hexafy', function() { this.myFunc = function (x) { return x.toString(16); } });
For at bruge din brugerdefinerede service skal du tilføje den som en afhængighed i definitionen af din controller:
Eksempel
Brug af en brugerdefineret service ved navn hexafy til at konvertere et tal til et hexadecimal tal:
app.controller('myCtrl', function($scope, hexafy) { $scope.hex = hexafy.myFunc(255); });
Brug af brugerdefinerede tjenester i filtre
Efter at have oprettet tjenesten og forbundet den til din applikation kan du bruge denne tjeneste i ethvert controller, anvisning, filter eller endda andre tjenester.
For at bruge tjenester i filter skal du tilføje dem som afhængigheder ved definitionen af filteret:
Tjenesten hexafy brugt i filteret myFormat:
app.filter('myFormat',['hexafy', function(hexafy) { return function(x) { return hexafy.myFunc(x); }; });
Du kan bruge denne filter til at vise værdier i objekter eller arrayer:
<ul> <li ng-repeat="x in counts">{{x | myFormat}}</li> </ul>
- Forrige side AngularJS filter
- Næste side AngularJS Http