tutoriais mais recente desenvolvimento web
 

AngularJS Serviços


Em AngularJS você pode fazer o seu próprio serviço, ou usar um dos muitos serviços internos.


O que é um serviço?

Em AngularJS, um serviço é uma função, ou objeto, que está disponível para, e limitado a, seu aplicativo AngularJS.

AngularJS tem cerca de 30 serviços integrados. Um deles é o $location de serviço.

A $location serviço tem métodos que retornam informações sobre a localização da página da web atual:

Exemplo

Use a $location serviço em um controlador:

var app = angular.module('myApp', []);
app.controller('customersCtrl', function($scope, $location) {
    $scope.myUrl = $location.absUrl();
});
Tente você mesmo "

Note que o $location de serviço é passado para o controlador como um argumento. A fim de usar o serviço, no controlador, que deve ser definida como uma dependência.


Por que usar Services?

Para muitos serviços, como o $location de serviço, parece que você poderia usar objetos que já estão no DOM, como o window.location objeto e você poderia, mas teria algumas limitações, pelo menos, para a sua aplicação AngularJS.

AngularJS constantemente fiscaliza a sua aplicação, e para que possa lidar com mudanças e eventos corretamente, AngularJS prefere que você use a $location de serviço em vez do window.location objeto.


O Serviço $ HTTP

O $http serviço é um dos serviços utilizados mais comuns em aplicações AngularJS. O serviço faz uma solicitação para o servidor, e permite que o aplicativo lidar com a resposta.

Exemplo

Use a $http serviço para solicitar dados do servidor:

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, $http) {
    $http.get("welcome.htm").then(function (response) {
        $scope.myWelcome = response.data;
    });
});
Tente você mesmo "

Este exemplo demonstra um uso muito simples da $http serviço. Saiba mais sobre o $http serviço no AngularJS Http Tutorial .


O tempo limite de serviço $

O $timeout serviço é versão do 'AngularJS window.setTimeout função.

Exemplo

Exibir uma nova mensagem depois de dois segundos:

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, $timeout) {
    $scope.myHeader = "Hello World!";
    $timeout(function () {
        $scope.myHeader = "How are you today?";
    }, 2000);
});
Tente você mesmo "

O Serviço $ intervalo

O $interval serviço é versão do 'AngularJS window.setInterval função.

Exemplo

Mostrar a vez a cada segundo:

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, $interval) {
    $scope.theTime = new Date().toLocaleTimeString();
    $interval(function () {
        $scope.theTime = new Date().toLocaleTimeString();
    }, 1000);
});
Tente você mesmo "

Criar o seu próprio serviço

Para criar seu próprio serviço, ligar o seu serviço para o módulo:

Criar um serviço chamado hexafy :

app.service('hexafy', function() {
    this.myFunc = function (x) {
        return x.toString(16);
    }
});

Para usar o seu serviço personalizado feito, adicioná-lo como uma dependência ao definir o filtro:

Exemplo

Use o serviço personalizado feito chamado hexafy para converter um número em um número hexadecimal:

app.controller('myCtrl', function($scope, hexafy ) {
    $scope.hex = hexafy .myFunc(255);
});
Tente você mesmo "

Use um serviço personalizado Dentro de um filtro

Depois de ter criado um serviço, e conectá-lo ao seu aplicativo, você pode usar o serviço em qualquer controlador, directiva, filtro, ou mesmo dentro de outros serviços.

Para usar o serviço dentro de um filtro, adicioná-lo como uma dependência ao definir o filtro:

O serviço hexafy usado no filtro myFormat :

app.filter('myFormat',[ 'hexafy' , function( hexafy ) {
    return function(x) {
        return hexafy .myFunc(x);
    };
}]);
Tente você mesmo "

Você pode usar o filtro ao exibir valores de um objeto, ou um array:

Criar um serviço chamado hexafy :

<ul>
<li ng-repeat="x in counts">{{x | myFormat}}</li>
</ul>
Tente você mesmo "