diff options
| author | Misko Hevery | 2011-11-08 20:42:16 -0800 | 
|---|---|---|
| committer | Misko Hevery | 2011-11-14 20:31:15 -0800 | 
| commit | c283bf6035566aa8ff3178676a133de6878b5d1b (patch) | |
| tree | 7840abc149b6b056a76ac5016756fed32e6364ab | |
| parent | b3c17f3fdcf37403c5fb71f9916983a10e17c783 (diff) | |
| download | angular.js-c283bf6035566aa8ff3178676a133de6878b5d1b.tar.bz2 | |
refactor($location): merged $locationConfig service into $locationProvider
| -rw-r--r-- | docs/content/guide/dev_guide.services.$location.ngdoc | 16 | ||||
| -rw-r--r-- | docs/src/templates/docs.js | 7 | ||||
| -rw-r--r-- | src/Angular.js | 1 | ||||
| -rw-r--r-- | src/service/location.js | 38 | ||||
| -rw-r--r-- | test/service/locationSpec.js | 10 | 
5 files changed, 38 insertions, 34 deletions
diff --git a/docs/content/guide/dev_guide.services.$location.ngdoc b/docs/content/guide/dev_guide.services.$location.ngdoc index 51747516..a8e79111 100644 --- a/docs/content/guide/dev_guide.services.$location.ngdoc +++ b/docs/content/guide/dev_guide.services.$location.ngdoc @@ -88,26 +88,22 @@ setter methods that allow you to get or change the current URL in the browser.  ## $location service configuration -To configure the `$location` service, you define the `$locationConfig` service which is an object -with configuration properties: +To configure the `$location` service, you get a hold of +{@link angular.module.ng.$locationProvider $locationProvider} service and configure it with these +methods: -- **html5Mode**: {boolean}<br /> +- **html5Mode(mode)**: {boolean}<br />    `true` - see HTML5 mode<br />    `false` - see Hashbang mode<br />    default: `false` -- **hashPrefix**: {string}<br /> +- **hashPrefix(prefix)**: {string}<br />    prefix used for Hashbang URLs (used in Hashbang mode or in legacy browser in Html5 mode)<br />    default: `'!'`  ### Example configuration  <pre> -angular.service('$locationConfig', function() { -  return { -    html5mode: true, -    hashPrefix: '!' -  }; -}); +$locationProvider.html5Mode(true).hashPrefix('!');  </pre>  ## Getter and setter methods diff --git a/docs/src/templates/docs.js b/docs/src/templates/docs.js index 0c8d787a..09a9e708 100644 --- a/docs/src/templates/docs.js +++ b/docs/src/templates/docs.js @@ -152,9 +152,6 @@ function TutorialInstructionsCtrl($cookieStore) {  window.angular = window.angular || {};  angular.module = angular.module || {}; -angular.module.ngdocs = function($provide) { -  $provide.value('$locationConfig', { -    html5Mode: true, -    hashPrefix: '!' -  }); +angular.module.ngdocs = function($locationProvider) { +  $locationProvider.html5Mode(true).hashPrefix('!');  }; diff --git a/src/Angular.js b/src/Angular.js index bb75bc4e..69a5e4ca 100644 --- a/src/Angular.js +++ b/src/Angular.js @@ -954,7 +954,6 @@ function ngModule($provide, $injector) {    $provide.service('$filter', $FilterProvider);    $provide.service('$formFactory', $FormFactoryProvider);    $provide.service('$location', $LocationProvider); -  $provide.service('$locationConfig', $LocationConfigProvider);    $provide.service('$log', $LogProvider);    $provide.service('$parse', $ParseProvider);    $provide.service('$resource', $ResourceProvider); diff --git a/src/service/location.js b/src/service/location.js index 7cc5c273..11a69e96 100644 --- a/src/service/location.js +++ b/src/service/location.js @@ -420,15 +420,35 @@ function locationGetterSetter(property, preprocess) {   * For more information see {@link guide/dev_guide.services.$location Developer Guide: Angular Services: Using $location}   */  function $LocationProvider(){ -  this.$get = ['$rootScope', '$browser', '$sniffer', '$locationConfig', '$document', -      function( $rootScope,   $browser,   $sniffer,   $locationConfig,   $document) { +  var hashPrefix = '', +      html5Mode = false; + +  this.hashPrefix = function(prefix) { +    if (isDefined(prefix)) { +      hashPrefix = prefix; +      return this; +    } else { +      return html5Mode; +    } +  } + +  this.html5Mode = function(mode) { +    if (isDefined(mode)) { +      html5Mode = mode; +      return this; +    } else { +      return html5Mode; +    } +  }; + +  this.$get = ['$rootScope', '$browser', '$sniffer', '$document', +      function( $rootScope,   $browser,   $sniffer,   $document) {      var currentUrl,          basePath = $browser.baseHref() || '/',          pathPrefix = pathPrefixFromBase(basePath), -        hashPrefix = $locationConfig.hashPrefix || '',          initUrl = $browser.url(); -    if ($locationConfig.html5Mode) { +    if (html5Mode) {        if ($sniffer.history) {          currentUrl = new LocationUrl(convertToHtml5Url(initUrl, basePath, hashPrefix), pathPrefix);        } else { @@ -505,13 +525,3 @@ function $LocationProvider(){      return currentUrl;  }];  } - -//TODO(misko): refactor to service -function $LocationConfigProvider(){ -  this.$get = function() { -    return { -      html5Mode: false, -      hashPrefix: '' -    }; -  }; -} diff --git a/test/service/locationSpec.js b/test/service/locationSpec.js index 65ca36a7..30c3f790 100644 --- a/test/service/locationSpec.js +++ b/test/service/locationSpec.js @@ -308,8 +308,9 @@ describe('$location', function() {    function initService(html5Mode, hashPrefix, supportHistory) { -    return function($provide){ -      $provide.value('$locationConfig', {html5Mode: html5Mode, hashPrefix: hashPrefix}); +    return function($provide, $locationProvider){ +      $locationProvider.html5Mode(html5Mode); +      $locationProvider.hashPrefix(hashPrefix);        $provide.value('$sniffer', {history: supportHistory});      };    } @@ -576,7 +577,7 @@ describe('$location', function() {      var root, link, originalBrowser, lastEventPreventDefault;      function configureService(linkHref, html5Mode, supportHist, attrs, content) { -      return function($provide){ +      return function($provide, $locationProvider){          var jqRoot = jqLite('<div></div>');          attrs = attrs ? ' ' + attrs + ' ' : '';          link = jqLite('<a href="' + linkHref + '"' + attrs + '>' + content + '</a>')[0]; @@ -586,7 +587,8 @@ describe('$location', function() {          $provide.value('$document', jqRoot);          $provide.value('$sniffer', {history: supportHist}); -        $provide.value('$locationConfig', {html5Mode: html5Mode, hashPrefix: '!'}); +        $locationProvider.html5Mode(html5Mode); +        $locationProvider.hashPrefix('!');        };      }  | 
