AngularJS Hizmetleri
AngularJS'de kendi hizmetinizi oluşturabilir veya birçok yerleşik hizmetten birini kullanabilirsiniz.
Hizmet Nedir?
AngularJS'de hizmet, AngularJS uygulamanız için kullanılabilen ve bununla sınırlı olan bir işlev veya nesnedir.
AngularJS'nin yaklaşık 30 yerleşik hizmeti vardır. Bunlardan biri $location
hizmettir.
Hizmet $location
, geçerli web sayfasının konumu hakkında bilgi veren yöntemlere sahiptir:
Örnek
$location
Hizmeti bir denetleyicide kullanın :
var app = angular.module('myApp', []);
app.controller('customersCtrl',
function($scope, $location) {
$scope.myUrl = $location.absUrl();
});
$location
Hizmetin denetleyiciye bir argüman olarak iletildiğini unutmayın . Servisin controller içerisinde kullanılabilmesi için bir bağımlılık olarak tanımlanması gerekir.
Hizmetler neden kullanılır?
Hizmet gibi birçok hizmet için, $location
nesne gibi zaten DOM'da bulunan nesneleri kullanabileceğiniz görülüyor window.location
ve bunu yapabilirsiniz, ancak en azından AngularJS uygulamanız için bazı sınırlamaları olacaktır.
AngularJS, uygulamanızı sürekli olarak denetler ve değişiklikleri ve olayları düzgün bir şekilde işlemesi için AngularJS , nesne $location
yerine hizmeti kullanmanızı tercih eder.window.location
$http Hizmeti
Servis $http
, AngularJS uygulamalarında en yaygın kullanılan servislerden biridir. Hizmet, sunucuya bir istekte bulunur ve uygulamanızın yanıtı işlemesine izin verir.
Örnek
$http
Sunucudan veri istemek için hizmeti kullanın :
var app = angular.module('myApp', []);
app.controller('myCtrl',
function($scope, $http) {
$http.get("welcome.htm").then(function
(response) {
$scope.myWelcome
= response.data;
});
});
Bu örnek, hizmetin çok basit bir kullanımını göstermektedir $http
. AngularJS Http Eğitiminde$http
hizmet hakkında daha fazla bilgi edinin .
$zaman aşımı Hizmeti
Hizmet , işlevin $timeout
AngularJS' versiyonudur .
window.setTimeout
Örnek
İki saniye sonra yeni bir mesaj görüntüleyin:
var app = angular.module('myApp', []);
app.controller('myCtrl',
function($scope, $timeout) {
$scope.myHeader = "Hello
World!";
$timeout(function () {
$scope.myHeader = "How are you today?";
}, 2000);
});
$aralık Hizmeti
Hizmet , işlevin $interval
AngularJS' versiyonudur .
window.setInterval
Örnek
Her saniye zamanı göster:
var app = angular.module('myApp', []);
app.controller('myCtrl',
function($scope, $interval) {
$scope.theTime = new
Date().toLocaleTimeString();
$interval(function () {
$scope.theTime = new Date().toLocaleTimeString();
},
1000);
});
Kendi Hizmetinizi Oluşturun
Kendi hizmetinizi oluşturmak için hizmetinizi modüle bağlayın:
Adlı bir hizmet oluşturun hexafy
:
app.service('hexafy', function() {
this.myFunc = function (x) {
return x.toString(16);
}
});
Özel yapım hizmetinizi kullanmak için, denetleyiciyi tanımlarken bunu bir bağımlılık olarak ekleyin:
Örnek
hexafy
Bir sayıyı onaltılık sayıya dönüştürmek için adlı özel yapım hizmeti kullanın :
app.controller('myCtrl', function($scope, hexafy) {
$scope.hex
= hexafy.myFunc(255);
});
Filtre İçinde Özel Hizmet Kullanın
Bir hizmet oluşturup uygulamanıza bağladıktan sonra, hizmeti herhangi bir denetleyicide, yönergede, filtrede ve hatta diğer hizmetlerin içinde kullanabilirsiniz.
Hizmeti bir filtre içinde kullanmak için, filtreyi tanımlarken bunu bir bağımlılık olarak ekleyin:
hexafy
Filtrede kullanılan servis myFormat
:
app.filter('myFormat',['hexafy', function(hexafy) {
return function(x) {
return
hexafy.myFunc(x);
};
}]);
Bir nesneden veya bir diziden değerleri görüntülerken filtreyi kullanabilirsiniz:
<ul>
<li ng-repeat="x in counts">{{x | myFormat}}</li>
</ul>