Extending a service provider in Angular

by manoj

HTML

<div ng-app="APP">
    <div ng-controller="FooCtrl">
        {{foo}}
    </div>
</div>

JavaScript

console.log('foo');

var module = angular.module('APP', []);

module.provider('Serv', function () {
    this.foo = 45;

    this.$get = function () {
        var self = this;
        
        return function () {
            	return self.foo;
        }
    }
    
    this.setFoo = function (val) {
        	this.foo = val;
    }
});

module.config(function (ServProvider) {
    ServProvider.setFoo(55);
});

module.controller('FooCtrl', function(Serv, $scope) {
    $scope.foo = Serv();
});