ng-complete: providers

An AngularJS service provider demo

by James Allardice

HTML

<div ng-app="GreeterDemo" ng-controller="GreeterCtrl">
    {{greeting}}
</div>

JavaScript

angular
    .module("GreeterDemo", [])
    .provider("Greeter", [
        function () {
            
            var name;
            
            this.setName = function (newName) {
                name = newName;
            };
            
            this.$get = [
                function () {
                    return {
                        sayHello: function () { 
                            return "Hello " + name;
                        }
                    };
                }
            ];
        }
    ])
    .config([
        
        "GreeterProvider",
        
        function (GreeterProvider) {
            GreeterProvider.setName("James");
        }
    ])
    .controller("GreeterCtrl", [
        
        "$scope",
        "Greeter",
        
        function ($scope, Greeter) {
            $scope.greeting = Greeter.sayHello();
        }
    ])
;