We can create custom AngularJS service with 'service' method and 'factory' method. Both are singletons, they gets instantiated once per app but there is a major difference between two,
Service is just a constructor function that will be called with 'new' keyword. When you’re using Service, Angular instantiates it behind the scenes with the ‘new’ keyword. Because of that, you’ll add properties to ‘this’ and the service will return ‘this’. When you pass the service into your controller, those properties on ‘this’ will now be available on that controller through your service.
When you’re using a Factory you create an object, add properties/functions to it, then return that same object. When you pass this factory into your controller, those properties/functions on the object will now be available in that controller through your factory. Example below
Service is just a constructor function that will be called with 'new' keyword. When you’re using Service, Angular instantiates it behind the scenes with the ‘new’ keyword. Because of that, you’ll add properties to ‘this’ and the service will return ‘this’. When you pass the service into your controller, those properties on ‘this’ will now be available on that controller through your service.
TeamModule.service('HelloWorldService', function () {
this.HelloWorld = function (text) {
return "Hello " + text + "!";
};
});
When you’re using a Factory you create an object, add properties/functions to it, then return that same object. When you pass this factory into your controller, those properties/functions on the object will now be available in that controller through your factory. Example below
TeamModule.factory('HelloWorldFactory', function () {
return {
HelloWorld: function (text) {
return "Hi " + text + "!";
}
}
});
I strongly recommend to read my blog Services in AngularJS to know more about service.
No comments:
Post a Comment