Confused about Service vs Factory
As I understand it, when inside a factory I return an object that gets injected into a controller. When inside a service I am dealing with the object using this
and not returning anything.
I was under the assumption that a service was always a singleton, and that a new factory object gets injected in every controller. However, as it turns out, a factory object is a singleton too?
Example code to demonstrate:
var factories = angular.module('app.factories', []);
var app = angular.module('app', ['ngResource', 'app.factories']);
factories.factory('User', function () {
return {
first: 'John',
last: 'Doe'
};
});
app.controller('ACtrl', function($scope, User) {
$scope.user = User;
});
app.controller('BCtrl', function($scope, User) {
$scope.user = User;
});
When changing user.first
in ACtrl
it turns out that user.first
in BCtrl
is also changed, e.g. User
is a singleton?
My assumption was that a new instance was injected in a controller with a factory?