title: Best way to override module values/constants in angularJS
body: <p>I have written a module in angularJS that encapsulates all the backend communications. For greater flexibility I have the api prefix as a constant value on the module (could be value since I am not using it in the config phase).
  so something like</p>
  
  <pre><code>angular.module('myapp.data').constant('apiPrefix', '/api/data');
  </code></pre>
  
  <p>Now I want to use this module from two different applications. One uses /api1/data and the other one /api2/data and I would like to change this during the config phase of the application.
  I know how to do that with a provider, but having a provider to hold a value seems like an overkill to me. Can I modify used modules constants or values from the application config phase?</p>
  
  <p>something like:</p>
  
  <pre><code>angular.module("data", [])
  .value('apiPrefix', '/api/data')
  .factory('display', function(apiPrefix){
    return {
      pref: function(){
        console.log(apiPrefix);
        return apiPrefix;
      }
    }
  });
  
  
  angular.module("myApp",['data'])
  .config(['apiPrefix', function(prefix){
    prefix = 'https:/api/data'; 
  }])
  .controller("Example", function($scope, display) {
     $scope.prefix = display.pref;
  });
  </code></pre>