AngularJS-Dienst
- Vorherige Seite AngularJS-Filter
- Nächste Seite AngularJS-Http
In AngularJS können Sie eigene Dienste erstellen oder einer der vielen eingebetteten Dienste verwenden.
Was ist ein Dienst?
In AngularJS sind Dienste Funktionen oder Objekte, die für und nur für Ihre AngularJS-Anwendung verwendet werden können.
AngularJS hat etwa 30 eingebettete Dienste. Einer davon ist $location
Dienst.
$location
Der Dienst verfügt über Methoden, um Informationen zur aktuellen Webseitenposition zurückzugeben:
Beispiel
Dienst $location im Controller verwenden:
var app = angular.module('myApp', []); app.controller('customersCtrl', function($scope, $location) { $scope.myUrl = $location.absUrl(); });
Bitte beachten Sie:$location
Dienste werden als Parameter an den Controller übergeben. Um den Dienst im Controller zu verwenden, muss er als Abhängigkeit definiert werden.
Warum den Dienst verwenden?
Für viele Dienste wie $location
Dienst, Sie scheinen bereits vorhandene Objekte im DOM verwenden zu können (z.B. window.location-Objekt),aber es gibt einige Einschränkungen, mindestens für Ihre AngularJS-Anwendung.
AngularJS überwacht ständig Ihre Anwendung, um sicherzustellen, dass sie Änderungen und Ereignisse korrekt verarbeitet, daher bevorzugt AngularJS, dass Sie $location
Dienst anstelle des window.location-Objekts.
$http-Dienst
$http
Dieser Dienst ist einer der häufigsten Dienste in AngularJS-Anwendungen. Er sendet Anfragen an den Server und lässt Ihre Anwendung die Antworten verarbeiten.
Beispiel
Mit dem $http-Dienst werden Daten vom Server angefordert:
var app = angular.module('myApp', []); app.controller('myCtrl', function($scope, $http) {}} $http.get("welcome.htm").then(function (response) { $scope.myWelcome = response.data; }); });
Dieses Beispiel zeigt $http
Sehr einfache Verwendung des Dienstes. Erfahren Sie mehr über den $http-Dienst im AngularJS Http-Tutorial.
$timeout-Dienst
$timeout
Der Dienst ist die AngularJS-Version von window.setTimeout
Funktion.
Beispiel
Nach zwei Sekunden eine neue Nachricht anzeigen:
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-Dienst
$interval
Der Dienst ist die AngularJS-Version von window.setInterval
Funktion.
Beispiel
Jede Sekunde die Zeit anzeigen:
var app = angular.module('myApp', []); app.controller('myCtrl', function($scope, $interval) { $scope.theTime = new Date().toLocaleTimeString(); $interval(function () { $scope.theTime = new Date().toLocaleTimeString(); }, 1000); });
Erstellen Sie Ihren eigenen Dienst
Um Ihren eigenen Dienst zu erstellen, verbinden Sie den Dienst mit dem Modul:
Erstellen Sie einen Namens hexafy
Dienst:
app.service('hexafy', function() { this.myFunc = function (x) { return x.toString(16); } });
Um Ihren benutzerdefinierten Dienst zu verwenden, fügen Sie ihn bei der Definition des Kontrollers als Abhängigkeit hinzu:
Beispiel
Mit dem benannten benutzerdefinierten Dienst hexafy wird die Zahl in eine sechszellige Zahl umgewandelt:
app.controller('myCtrl', function($scope, hexafy) { $scope.hex = hexafy.myFunc(255); });
Benutzerdefinierter Dienst im Filter verwenden
Erstellen Sie den Dienst und verbinden Sie ihn mit Ihrer Anwendung, dann können Sie den Dienst in jedem Kontroller, Bevel, Filter oder sogar anderen Diensten verwenden.
Um den Dienst im Filter zu verwenden, fügen Sie ihn bei der Definition des Filters als Abhängigkeit hinzu:
Dienst hexafy, der im Filter myFormat verwendet wird:
app.filter('myFormat',['hexafy', function(hexafy) { return function(x) { return hexafy.myFunc(x); }; });
Sie können diesen Filter verwenden, um Werte in Objekten oder Arrays anzuzeigen:
<ul> <li ng-repeat="x in counts">{{x | myFormat}}</li> </ul>
- Vorherige Seite AngularJS-Filter
- Nächste Seite AngularJS-Http