Factory vs Service

angularjs factory vs service do the same thing, just a different way of instantiation

by Jrg

HTML

<script src="http://code.angularjs.org/1.0.0rc10/angular-1.0.0rc10.js"></script>
<div ng-controller="HelloCtrl">
    <p>{{value}}</p>
</div>

JavaScript

//angular.js example for factory vs service
var app = angular.module('myApp', []);
    
app.factory('helpdeskPriority', function($q, $timeout, $log) {
        var items;
        var svc = {
            get: function() {
                $log.info("get enter");

                var defer = $q.defer();
                $timeout(function() {
                    $log.info("timeout callback enter");
                    svc.priority().then(function(result) {
                        $log.info("priority callback enter");                    
                        defer.resolve(result);
                    });
                }, 100);
                return defer.promise;
            },
            
            priority: function() {
                $log.info("priority enter");  
                // simulate http call with q + timeout
                var d = $q.defer();
                $timeout(function() {
                    $log.info("http callback enter");  
                    d.resolve({ data :"voila" });
                }, 300);
                
                return d.promise;
            }
        };
    
        return svc;
    });

function HelloCtrl($scope, helpdeskPriority, $log) {
    $log.info("HelloCtrl enter");  

    helpdeskPriority.get().then(function(result) {   
        $log.info("get callback enter");  
        $scope.value = JSON.stringify(result);
    });
}