daviesgeek.com

The web home and personal blog of Matthew Davies

Angular Service Providers with config

Friday, May 22, 2015 at 13:25 PDT -

Simple example of an Angular service provider with configuration option(s):

var app = angular.module("app", []);
  app.service('service', function() {
    var service = function (enabled) {
      this.enabled = enabled
    }
    service.prototype.isEnabled = function() {
      return this.enabled
    }
    return service
  })
  app.provider('MyCoolService', function () {
    var enabled;
    return {
      setEnabled: function (isEnabled) {
        enabled = isEnabled;
      },
      $get: function (service) {
        return new service(enabled)
      }
    };
  });

  app.config(function (MyCoolServiceProvider) {
    MyCoolServiceProvider.setEnabled(true)
  });

  app.controller("Controller", function ($scope, MyCoolService) {
    $scope.enabled = MyCoolService.isEnabled()
  });

Working Plunkr