Serviços AngularJS
- Página Anterior Filtros AngularJS
- Próxima Página Http AngularJS
No AngularJS, você pode criar seus próprios serviços ou usar um dos muitos serviços integrados.
O que são serviços?
No AngularJS, os serviços são funções ou objetos que podem ser usados e estão limitados apenas ao seu aplicativo AngularJS.
O AngularJS tem cerca de 30 serviços integrados. Um deles é $location
serviço.
$location
O serviço possui métodos que retornam informações sobre a localização atual da página da web:
Exemplo
Uso do serviço $location no controlador:
var app = angular.module('myApp', []); app.controller('customersCtrl', function($scope, $location) { $scope.myUrl = $location.absUrl(); });
Atenção:$location
Os serviços são passados como parâmetros para o controlador. Para usar o serviço no controlador, é necessário defini-lo como dependência.
Por que usar serviços?
Para muitos serviços, como $location
serviço, você parece poder usar objetos já existentes no DOM (por exemplo objeto window.location),mas há algumas limitações, pelo menos para seu aplicativo AngularJS.
O AngularJS supervisiona constantemente seu aplicativo, preferindo que você use $location
serviço em vez do objeto window.location.
$http serviço
Este exemplo demonstra
O serviço é um dos mais usados no aplicativo AngularJS. Ele envia solicitações para o servidor e permite que seu aplicativo processe as respostas.
Exemplo
Usando o serviço $http para solicitar dados do servidor:
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; Este exemplo demonstra
$http
Uso muito simples do serviço $timeout. Para mais informações sobre o serviço $http, consulte o tutorial de Http AngularJS.
$timeout
O serviço é a versão AngularJS do window.setTimeout
função.
Exemplo
Mostrar uma nova mensagem após dois segundos:
var app = angular.module('myApp', []); app.controller('myCtrl', function($scope, $timeout) { $scope.myHeader = "Olá Mundo!"; $timeout(function () { $scope.myHeader = "Como você está hoje?"; }, 2000); });
Serviço $interval
$interval
O serviço é a versão AngularJS do window.setInterval
função.
Exemplo
Mostrar a hora 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); });
Criar seu próprio serviço
Para criar seu próprio serviço, conecte-o ao módulo:
Criar um serviço chamado hexafy
do serviço:
app.service('hexafy', function() { this.myFunc = function (x) { return x.toString(16); } });
Para usar seu serviço personalizado, adicione-o como dependência ao definir o controlador:
Exemplo
Usar um serviço personalizado chamado hexafy para converter números em números hexadecimais:
app.controller('myCtrl', function($scope, hexafy) { $scope.hex = hexafy.myFunc(255); });
Uso de Serviços Personalizados em Filtros
Após criar o serviço e conectá-lo ao seu aplicativo, você pode usá-lo em qualquer controlador, diretiva, filtro ou até mesmo em outros serviços.
Para usar o serviço no filtro, adicione-o como dependência ao definir o filtro:
Serviço hexafy usado no filtro myFormat:
app.filter('myFormat',['hexafy', function(hexafy) { return function(x) { return hexafy.myFunc(x); }; });
Você pode usar este filtro ao exibir valores em objetos ou arrays:
<ul> <li ng-repeat="x in counts">{{x | myFormat}}</li> </ul>
- Página Anterior Filtros AngularJS
- Próxima Página Http AngularJS