Последние учебники веб-разработки
 

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 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>
Попробуй сам "