AngularJS-palvelut
- Edellinen sivu AngularJS-suodattimet
- Seuraava sivu AngularJS-HTTP
AngularJS:ssä voit luoda omia palveluitasi tai käyttää yhtä monista sisäänrakennetuista palveluista.
Mitä palvelu on?
AngularJS:ssä palvelut ovat funktioita tai objekteja, joita voidaan käyttää ja jotka ovat käytettävissä vain AngularJS-sovelluksessasi.
AngularJS:llä on noin 30 sisäänrakennettua palvelua. Yksi niistä on $location
Palvelu.
$location
Palvelulla on menetelmiä, jotka voivat palauttaa tietoja nykyisestä sivun sijainnista:
Esimerkki
Käytä $location-palvelua ohjaimessa:
var app = angular.module('myApp', []); app.controller('customersCtrl', function($scope, $location) { $scope.myUrl = $location.absUrl(); });
Huomaa,$location
Palvelu annetaan parametrina ohjaimelle. Jotta voit käyttää palvelua ohjaimessa, on sitä määriteltävä riippuvuutena.
Miksi käyttää palvelua?
monet palvelut, kuten $location
palvelua, voit käyttää jo olemassa olevia DOM-objekteja (esimerkiksi window.location-objekti),mutta sillä on joitakin rajoituksia, ainakin AngularJS-sovelluksesi kannalta.
AngularJS valvoo jatkuvasti sovellustasi, jotta se voi käsitellä muutokset ja tapahtumat oikein, AngularJS suosittelee, että käytät $location
palvelu eikä window.location-objekti.
$http-palvelu
$http
Palvelu on yksi AngularJS-sovelluksissa käytetyimmistä palveluista. Se lähettää pyyntöjä palvelimelle ja antaa sovelluksellesi käsitellä vastaukset.
Esimerkki
Hae tietoja palvelimelta $http-palvelun avulla:
var app = angular.module('myApp', []); app.controller('myCtrl', function($scope, $http) {}} $http.get("welcome.htm").then(function (response) { $scope.myWelcome = response.data; }); });
Tämä esimerkki osoittaa $http
Palvelun erittäin yksinkertainen käyttö. Lisätietoja $http-palvelusta löydät AngularJS Http-opasesta.
$timeout-palvelu
$timeout
Palvelu on AngularJS-versio window.setTimeout
funktiota.
Esimerkki
Näytä uusi viesti kaksi sekuntia myöhemmin:
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-palvelu
$interval
Palvelu on AngularJS-versio window.setInterval
funktiota.
Esimerkki
Näytä kellonaika sekunnissa:
var app = angular.module('myApp', []); app.controller('myCtrl', function($scope, $interval) { $scope.theTime = new Date().toLocaleTimeString(); $interval(function () { $scope.theTime = new Date().toLocaleTimeString(); }, 1000); });
Luo oma palvelusi
Jos haluat luoda oman palvelun, yhdistä se moduuliin:
Luo nimi hexafy
palvelu:
app.service('hexafy', function() { this.myFunc = function (x) { return x.toString(16); } });
Jos haluat käyttää mukautettua palveluasi, lisää se riippuvuutena ohjaimen määrittäessä:
Esimerkki
Käyttämällä nimeltä hexafy mukautettua palvelua luku voidaan muuntaa heksadesimaaliluvuksi:
app.controller('myCtrl', function($scope, hexafy) { scope.hex = hexafy.myFunc(255); });
Mukautetun palvelun käyttö suodattimessa
Luo palvelu ja yhdistä se sovellukseesi, ja voit käyttää tätä palvelua missä tahansa ohjaimessa, ohjeessa, suodattimessa tai jopa muissa palveluissa.
Jos haluat käyttää palvelua suodattimessa, lisää se riippuvuutena suodattimen määrittäessä:
Suodattimen myFormat käyttämä palvelu hexafy:
app.filter('myFormat',['hexafy', function(hexafy) { return function(x) { return hexafy.myFunc(x); }); });
Voit käyttää tätä suodattimea näyttääksesi arvoja objekteissa tai taulukoissa:
<ul> <li ng-repeat="x in counts">{{x | myFormat}}</li> </ul>
- Edellinen sivu AngularJS-suodattimet
- Seuraava sivu AngularJS-HTTP