W angularjs można tworzyć własne usługi, lub użyć jednego z wielu wbudowanych usług.
Co to jest obsługa?
W angularjs usługa jest funkcją lub przedmiotem, który jest dostępny za, a ograniczają się do aplikacji angularjs.
Angularjs ma około 30 wbudowanych usług. Jednym z nich jest $location
usługi.
$location
usługa ma metody, które zwracają informacje o lokalizacji bieżącej stronie internetowej:
Przykład
Użyj $location
usługi w kontrolerze:
var app = angular.module('myApp', []);
app.controller('customersCtrl',
function($scope, $location) {
$scope.myUrl = $location.absUrl();
});
Spróbuj sam " Zauważ, że $location
Usługa jest przekazywana do sterownika jako argument. W celu skorzystania z usługi w sterowniku, musi być zdefiniowany jako zależność.
Dlaczego warto korzystać z usług?
Dla wielu usług, takich jak $location
usługi, wydaje się, że można korzystać z obiektów, które są już w DOM, jak window.location
obiektu, i można, ale to ma pewne ograniczenia, przynajmniej dla aplikacji angularjs.
Angularjs stale nadzoruje swoją aplikację, a na to, aby prawidłowo obsługiwać zmian i zdarzeń, angularjs preferuje się używanie $location
usługę zamiast window.location
obiektu.
Usługa $ http
$http
Usługa jest jednym z najbardziej powszechnych usług wykorzystywanych w zastosowaniach angularjs. Usługa wysyła żądanie do serwera i umożliwia aplikacja obsługi odpowiedzi.
Przykład
Użyj $http
usługę do żądania danych z serwera:
var app = angular.module('myApp', []);
app.controller('myCtrl',
function($scope, $http) {
$http.get("welcome.htm").then(function
(response) {
$scope.myWelcome
= response.data;
});
});
Spróbuj sam " Przykład ten wykazuje bardzo proste wykorzystanie $http
usługi. Dowiedz się więcej o $http
służby w angularjs HTTP Tutorial .
Usługa $ Timeout
$timeout
usługa jest wersja angularjs z działalności window.setTimeout
funkcji.
Przykład
Wyświetla nową wiadomość po dwóch sekundach:
var app = angular.module('myApp', []);
app.controller('myCtrl',
function($scope, $timeout) {
$scope.myHeader = "Hello
World!";
$timeout(function () {
$scope.myHeader = "How are you today?";
}, 2000);
});
Spróbuj sam " Usługa $ odstęp
$interval
usługa jest wersja angularjs z działalności window.setInterval
funkcji.
Przykład
Wyświetla czas co drugi:
var app = angular.module('myApp', []);
app.controller('myCtrl',
function($scope, $interval) {
$scope.theTime = new
Date().toLocaleTimeString();
$interval(function () {
$scope.theTime = new Date().toLocaleTimeString();
},
1000);
});
Spróbuj sam " Stwórz swój własny serwis
By stworzyć własną usługę, należy podłączyć do modułu usługę:
Tworzenie serwisu o nazwie hexafy
:
app.service('hexafy', function() {
this.myFunc = function (x) {
return x.toString(16);
}
});
Aby korzystać z usługi wykonane na zamówienie, dodaj go jako zależność podczas definiowania filtra:
Przykład
Użyj niestandardowych wykonane usługi o nazwie hexafy
przekonwertować liczbę na liczbę szesnastkową:
app.controller('myCtrl', function($scope, hexafy ) {
$scope.hex
= hexafy .myFunc(255);
});
Spróbuj sam " Skorzystać z usługi niestandardowe Wewnątrz filtra
Po utworzeniu usługi i podłączeniu go do aplikacji, można korzystać z usługi w dowolnym kontrolerze, dyrektywy, filtrem, a nawet wewnątrz innych usług.
Aby skorzystać z usługi wewnątrz filtra, należy go dodać jako zależność podczas definiowania filtra:
Usługa hexafy
stosowany w filtrze myFormat
:
app.filter('myFormat',[ 'hexafy' , function( hexafy ) {
return function(x) {
return
hexafy .myFunc(x);
};
}]);
Spróbuj sam " Można użyć filtru podczas wyświetlania wartości z obiektu lub tablicy:
Tworzenie serwisu o nazwie hexafy
:
<ul>
<li ng-repeat="x in counts">{{x | myFormat}}</li>
</ul>
Spróbuj sam "