AngularJS Services
- Vorige pagina AngularJS Filters
- Volgende pagina AngularJS Http
In AngularJS kunt u uw eigen services maken of gebruik maken van een van de vele ingebouwde services.
Wat is een service?
In AngularJS zijn services functies of objecten die kunnen worden gebruikt en beperkt zijn tot uw AngularJS-applicatie.
AngularJS heeft ongeveer 30 ingebouwde services. Een van deze is $location
service.
$location
De service heeft methoden die informatie over de huidige locatie van de webpagina kunnen retourneren:
Voorbeeld
Gebruik van de $location-service in de controller:
var app = angular.module('myApp', []); app.controller('customersCtrl', function($scope, $location) { $scope.myUrl = $location.absUrl(); });
Let op,$location
Services worden als parameter doorgegeven aan controllers. Om een service in een controller te gebruiken, moet deze als afhankelijkheid worden gedefinieerd.
Waarom een service gebruiken?
Voor veel services zoals $location
services, het lijkt erop dat u gebruik kunt maken van objecten die al in de DOM aanwezig zijn (bijvoorbeeld window.location-object),maar er zijn enkele beperkingen, ten minste voor uw AngularJS-applicatie.
AngularJS monitort voortdurend uw applicatie en verkiest dat u $location
service in plaats van het window.location-object.
$http-service
$http
De service is een van de meest gebruikte services in AngularJS-applicaties. De service stuurt een verzoek naar de server en laat uw applicatie de reactie verwerken.
Voorbeeld
Gebruik de $http-service om gegevens van de server op te vragen:
var app = angular.module('myApp', []); app.controller('myCtrl', function($scope, $http) {}} $http.get("welcome.htm").then(function (response) { $scope.myWelcome = response.data; }); });
Dit voorbeeld demonstreert $http
Voor meer informatie over de $http-service, raadpleeg de AngularJS Http-tutorial.
Deze eenvoudige gebruikswijze van de $timeout-service.
$timeout
Een service is de AngularJS-versie van window.setTimeout
functie.
Voorbeeld
Twee seconden later een nieuwe bericht weergeven:
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-service
$interval
Een service is de AngularJS-versie van window.setInterval
functie.
Voorbeeld
Tijdstempel elke seconde weergeven:
var app = angular.module('myApp', []); app.controller('myCtrl', function($scope, $interval) { $scope.theTime = new Date().toLocaleTimeString(); $interval(function () { $scope.theTime = new Date().toLocaleTimeString(); }, 1000); });
Maak uw eigen service
Om uw eigen service te maken, koppel deze aan het module:
Maak een service genaamd hexafy
service:
app.service('hexafy', function() { this.myFunc = function (x) { return x.toString(16); } });
Om uw aangepaste service te gebruiken, voeg deze toe als afhankelijkheid bij het definiëren van de controller:
Voorbeeld
Gebruik een aangepaste service genaamd hexafy om een getal om te zetten naar een hexadecimaal getal:
app.controller('myCtrl', function($scope, hexafy) { $scope.hex = hexafy.myFunc(255); });
Gebruik een aangepaste service in een filter
Maak een service aan en koppel deze aan uw applicatie, daarna kunt u deze service gebruiken in elke controller, directive, filter of zelfs andere services.
Om een service te gebruiken in een filter, voeg deze toe als afhankelijkheid bij het definiëren van de filter:
De door de filter myFormat gebruikte service hexafy:
app.filter('myFormat',['hexafy', function(hexafy) { return function(x) { return hexafy.myFunc(x); }); });
U kunt deze filter gebruiken om waarden in objecten of arrays weer te geven:
<ul> <li ng-repeat="x in counts">{{x | myFormat}}</li> </ul>
- Vorige pagina AngularJS Filters
- Volgende pagina AngularJS Http