I've got this fiddle that creates a functional example of the question.
My understanding of module.factory vs. module.service is that the service function you provide is returned by calling return new serviceFunction while the factory function is called and it's return value provided. I thought one implication of this was that you'd get different instances of the factory result.
I created this factory:
app.factory('fact', function() {
return Math.random();
});
and then two controllers with the factory injected. I then referenced the result of the factory method as such:
app.controller('test1Controller', ['$scope', 'fact', function ($scope, fact) {
$scope.fact = fact;
}]);
app.controller('test2Controller', ['$scope', 'fact', function ($scope, fact) {
$scope.fact = fact;
}]);
I expected the result to be two different random numbers, but they are the same. How is this possible if the factory method is being called twice?