Сервисы AngularJS
- Предыдущая страница Фильтры AngularJS
- Следующая страница Http AngularJS
В 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
Этот пример демонстрирует
Сервис является одним из наиболее часто используемых сервисов в приложениях AngularJS. Этот сервис отправляет запросы на сервер и позволяет вашему приложению обрабатывать ответы.
Пример
Запрос данных с сервера через сервис $http:
var app = angular.module('myApp', []); app.controller('myCtrl', function($scope, $http) { app.controller('myCtrl', function($scope, $http) { $http.get("welcome.htm").then(function (response) { }); });
$scope.myWelcome = response.data; Этот пример демонстрирует
$http
Простое использование службы $timeout. Дополнительную информацию о службе $http можно найти в AngularJS Http руководстве.
$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
$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); }); });
Вы можете использовать этот фильтр при отображении значений объектов или массивов:
<ul> <li ng-repeat="x in counts">{{x | myFormat}}</li> </ul>
- Предыдущая страница Фильтры AngularJS
- Следующая страница Http AngularJS