Angular 01 - Provider Service examples (configurable)

by Sky Sigal

HTML

<div data-ng-app="App1">
        <div data-ng-controller="SomeCtrl">
            <b>Scalar Binding:</b><br/>
            <div>Text:<span data-ng-bind="someText"/></div>
       </div>
</div>

JavaScript

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

//ABOUT:
//Continuing Providers, but adding Configurability.


//Note: injecting provider's service (not provider):
app1.controller('SomeCtrl', ['$scope', 'barService', function ($scope, barService) {    
    $scope.someText = barService.someFunc();
}]);


//Note: injecting provider's service (not provider):
app1.provider("barService", function (){
    var providerConfig = {text:'default'}
    var provider = {};
    provider.configIt = function(x){providerConfig.text = x;}
    provider.$get = function(){
      var service = {};
      service.someFunc = function() {return "blah " + providerConfig.text;}
      return service;
    }
    return provider;
});
//IMPORTANT: DI is not done by array method that we have used throughout -- instead using registered name + Provider suffix.
app1.config(function( barServiceProvider ) {
    //Configure our service Provider:
    barServiceProvider.configIt("new foo!!!");
});