В AngularJS вы можете сделать свой собственный сервис, или использовать один из многих встроенных услуг.
Что такое служба?
В AngularJS, услуга является функцией, или объект, который доступен для, и ограничено, приложение AngularJS.
AngularJS имеет около 30 встроенных служб. Одним из них является $location
службы.
$location
сервиса есть методы , которые возвращают информацию о местоположении текущей веб - страницы:
пример
Используйте $location
службы в контроллере:
var app = angular.module('myApp', []);
app.controller('customersCtrl',
function($scope, $location) {
$scope.myUrl = $location.absUrl();
});
Попробуй сам " Обратите внимание , что $location
службы передается к контроллеру в качестве аргумента. Для того чтобы воспользоваться услугой в контроллере, он должен быть определен как зависимость.
Зачем использовать услуги?
Для многих услуг, как $location
службы, кажется , что вы могли бы использовать объекты, которые уже находятся в DOM, как window.location
объект, и вы могли бы, но это будет иметь некоторые ограничения, по крайней мере , для вашего приложения AngularJS.
AngularJS постоянно контролирует ваше приложение, и для того , чтобы обрабатывать изменения и события должным образом, AngularJS предпочитает , чтобы вы использовали $location
службы вместо window.location
объекта.
$ HTTP Service
$http
услуг является одним из наиболее распространенных используемых услуг в AngularJS приложениях. Услуга делает запрос на сервер, и позволяет ваше приложение обрабатывает ответ.
пример
Используйте $http
сервис для запроса данных с сервера:
var app = angular.module('myApp', []);
app.controller('myCtrl',
function($scope, $http) {
$http.get("welcome.htm").then(function
(response) {
$scope.myWelcome
= response.data;
});
});
Попробуй сам " Этот пример демонстрирует очень простое использование $http
службы. Узнайте больше о $http
службе в AngularJS Http Учебное пособие .
$ Тайм-аут Обслуживание
$timeout
- window.setTimeout
$timeout
обслуживание версия AngularJS 'от window.setTimeout
функции.
пример
Дисплей нового сообщения через две секунды:
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
обслуживание версия AngularJS 'от window.setInterval
функции.
пример
Отображение времени каждую секунду:
var app = angular.module('myApp', []);
app.controller('myCtrl',
function($scope, $interval) {
$scope.theTime = new
Date().toLocaleTimeString();
$interval(function () {
$scope.theTime = new Date().toLocaleTimeString();
},
1000);
});
Попробуй сам " Создайте свой собственный сервис
Чтобы создать свою собственную службу, подключить услугу к модулю:
Создание службы с именем hexafy
:
app.service('hexafy', function() {
this.myFunc = function (x) {
return x.toString(16);
}
});
Чтобы использовать выполненное на заказ обслуживание, добавьте его в качестве зависимости при определении фильтра:
пример
Используйте выполненное на заказ обслуживание по имени hexafy
преобразовать число в шестнадцатеричное число:
app.controller('myCtrl', function($scope, hexafy ) {
$scope.hex
= hexafy .myFunc(255);
});
Попробуй сам " С помощью специальной услуги Внутри фильтра
После того, как вы создали услугу, и подключили его к вашему приложению, вы можете воспользоваться услугой в любом контроллере, директива, фильтр, или даже внутри других услуг.
Чтобы воспользоваться услугой, внутри фильтра, добавьте его в качестве зависимости при определении фильтра:
Служба hexafy
используется в фильтре myFormat
:
app.filter('myFormat',[ 'hexafy' , function( hexafy ) {
return function(x) {
return
hexafy .myFunc(x);
};
}]);
Попробуй сам " Вы можете использовать фильтр при отображении значений из объекта или массива:
Создание службы с именем hexafy
:
<ul>
<li ng-repeat="x in counts">{{x | myFormat}}</li>
</ul>
Попробуй сам "