Service in AngularJS
AngularJs Service, Factories and
providers are all injectable types.
An AngularJs service encapsulates
specific business logic & exposes an API to be used by other components to
invoke this logic.
e.g. $timeout service executes
function after specifies interval. $http service encapsulates the logic
required to interact with REST backbends.
AngularJS service is always
Singleton.
Service is registered using service
function of angular.module().
The Second argument to service() is a
constructor function to inject the service.
e.g.
var myApp =
angular.module('myApp', []);
//service style,
probably the simplest one
myApp.service('helloWorldFromService', function() {
this.sayHello = function() {
return "Hello,
World!"
};
});
Factory method in AngularJS
Factory method is same as service method but it is more robust than
service and you can expose only that logic which you want to expose.
//factory style, more
involved but more sophisticated
myApp.factory('helloWorldFromFactory', function() {
return {
sayHello: function() {
return "Hello,
World!"
}
};
});
Difference between factory and service is factory exposes logic on
return type but in service you will access logic directly by service name and
function name.
Providers in AngularJS
A provider is most configurable and
verbose version of service because its based on prior setting and logic.
e.g. the built in $route service may
behave differently based on Mode(Html mode or hashbag mode) you can configured
in $route.Provider
//provider style, full
blown, configurable version
myApp.provider('helloWorld', function() {
this.name = 'Default';
this.$get = function() {
var name = this.name;
return {
sayHello: function() {
return "Hello, " + name + "!"
}
}
};
this.setName = function(name) {
this.name = name;
};
});
//we can configure a
provider!
myApp.config(function(helloWorldProvider){
helloWorldProvider.setName('World');
});
No comments:
Post a Comment