Servizi AngularJS
In AngularJS puoi creare il tuo servizio o utilizzare uno dei tanti servizi integrati.
Che cos'è un servizio?
In AngularJS, un servizio è una funzione o un oggetto disponibile e limitato all'applicazione AngularJS.
AngularJS ha circa 30 servizi integrati. Uno di questi è il $location
servizio.
Il $location
servizio ha metodi che restituiscono informazioni sulla posizione della pagina Web corrente:
Esempio
Utilizzare il $location
servizio in un controller:
var app = angular.module('myApp', []);
app.controller('customersCtrl',
function($scope, $location) {
$scope.myUrl = $location.absUrl();
});
Si noti che il $location
servizio viene passato al controller come argomento. Per poter utilizzare il servizio nel controller, deve essere definito come una dipendenza.
Perché usare i Servizi?
Per molti servizi, come il $location
servizio, sembra che tu possa usare oggetti che sono già nel DOM, come l' window.location
oggetto, e potresti, ma avrebbe alcune limitazioni, almeno per la tua applicazione AngularJS.
AngularJS supervisiona costantemente la tua applicazione e, affinché gestisca correttamente le modifiche e gli eventi, AngularJS preferisce che tu usi il $location
servizio invece window.location
dell'oggetto.
Il servizio $http
Il $http
servizio è uno dei servizi più comuni utilizzati nelle applicazioni AngularJS. Il servizio effettua una richiesta al server e consente all'applicazione di gestire la risposta.
Esempio
Utilizza il $http
servizio per richiedere dati al server:
var app = angular.module('myApp', []);
app.controller('myCtrl',
function($scope, $http) {
$http.get("welcome.htm").then(function
(response) {
$scope.myWelcome
= response.data;
});
});
Questo esempio mostra un uso molto semplice del $http
servizio. Scopri di più sul $http
servizio in AngularJS Http Tutorial .
Il servizio $ timeout
Il $timeout
servizio è la versione della
window.setTimeout
funzione di AngularJS.
Esempio
Visualizza un nuovo messaggio dopo due secondi:
var app = angular.module('myApp', []);
app.controller('myCtrl',
function($scope, $timeout) {
$scope.myHeader = "Hello
World!";
$timeout(function () {
$scope.myHeader = "How are you today?";
}, 2000);
});
Il servizio $ intervallo
Il $interval
servizio è la versione della
window.setInterval
funzione di AngularJS.
Esempio
Visualizza l'ora ogni secondo:
var app = angular.module('myApp', []);
app.controller('myCtrl',
function($scope, $interval) {
$scope.theTime = new
Date().toLocaleTimeString();
$interval(function () {
$scope.theTime = new Date().toLocaleTimeString();
},
1000);
});
Crea il tuo servizio
Per creare il tuo servizio, collega il tuo servizio al modulo:
Crea un servizio chiamato hexafy
:
app.service('hexafy', function() {
this.myFunc = function (x) {
return x.toString(16);
}
});
Per utilizzare il tuo servizio personalizzato, aggiungilo come dipendenza durante la definizione del controller:
Esempio
Utilizza il servizio personalizzato denominato hexafy
per convertire un numero in un numero esadecimale:
app.controller('myCtrl', function($scope, hexafy) {
$scope.hex
= hexafy.myFunc(255);
});
Usa un servizio personalizzato all'interno di un filtro
Dopo aver creato un servizio e averlo connesso alla tua applicazione, puoi utilizzare il servizio in qualsiasi controller, direttiva, filtro o anche all'interno di altri servizi.
Per utilizzare il servizio all'interno di un filtro, aggiungilo come dipendenza durante la definizione del filtro:
Il servizio hexafy
utilizzato nel filtro myFormat
:
app.filter('myFormat',['hexafy', function(hexafy) {
return function(x) {
return
hexafy.myFunc(x);
};
}]);
È possibile utilizzare il filtro durante la visualizzazione dei valori di un oggetto o di una matrice:
<ul>
<li ng-repeat="x in counts">{{x | myFormat}}</li>
</ul>