diff options
| author | Misko Hevery | 2012-05-18 15:26:09 -0700 | 
|---|---|---|
| committer | Misko Hevery | 2012-06-02 14:51:03 -0700 | 
| commit | 8aa18f0ad036fd4f2dc26f54d80754c70232b4f7 (patch) | |
| tree | cc2eecd0b7a252ae372bc6c67605ae970984262a | |
| parent | 85632cb44c95617d73c369f3a03fb476a4d5c8a2 (diff) | |
| download | angular.js-8aa18f0ad036fd4f2dc26f54d80754c70232b4f7.tar.bz2 | |
chore($location) switch to use $rootElement
| -rw-r--r-- | src/ng/location.js | 8 | ||||
| -rw-r--r-- | src/ng/rootElement.js | 3 | ||||
| -rw-r--r-- | test/ng/locationSpec.js | 23 | 
3 files changed, 19 insertions, 15 deletions
| diff --git a/src/ng/location.js b/src/ng/location.js index 54abf6cb..c7b41605 100644 --- a/src/ng/location.js +++ b/src/ng/location.js @@ -405,7 +405,7 @@ function locationGetterSetter(property, preprocess) {   *   * @requires $browser   * @requires $sniffer - * @requires $document + * @requires $rootElement   *   * @description   * The $location service parses the URL in the browser address bar (based on the {@link https://developer.mozilla.org/en/window.location window.location}) and makes the URL available to your application. Changes to the URL in the address bar are reflected into $location service and changes to $location are reflected into the browser address bar. @@ -468,8 +468,8 @@ function $LocationProvider(){      }    }; -  this.$get = ['$rootScope', '$browser', '$sniffer', '$document', -      function( $rootScope,   $browser,   $sniffer,   $document) { +  this.$get = ['$rootScope', '$browser', '$sniffer', '$rootElement', +      function( $rootScope,   $browser,   $sniffer,   $rootElement) {      var currentUrl,          basePath = $browser.baseHref() || '/',          pathPrefix = pathPrefixFromBase(basePath), @@ -487,7 +487,7 @@ function $LocationProvider(){        var u = currentUrl,            absUrlPrefix = composeProtocolHostPort(u.protocol(), u.host(), u.port()) + pathPrefix; -      $document.bind('click', function(event) { +      $rootElement.bind('click', function(event) {          // TODO(vojta): rewrite link when opening in new tab/window (in legacy browser)          // currently we open nice url link and redirect then diff --git a/src/ng/rootElement.js b/src/ng/rootElement.js index 7b72c2de..20e5bfc4 100644 --- a/src/ng/rootElement.js +++ b/src/ng/rootElement.js @@ -11,3 +11,6 @@   * location where the applications {@link angular.module.AUTO.$injector $injector} service gets   * published, it can be retrieved using `$rootElement.injector()`.   */ + + +// the implementation is in angular.bootstrap diff --git a/test/ng/locationSpec.js b/test/ng/locationSpec.js index b866b1e3..46079ea6 100644 --- a/test/ng/locationSpec.js +++ b/test/ng/locationSpec.js @@ -498,8 +498,8 @@ describe('$location', function() {    // html5 history enabled, but not supported by browser    describe('history on old browser', function() { -    afterEach(inject(function($document){ -      dealoc($document); +    afterEach(inject(function($rootElement){ +      dealoc($rootElement);      }));      it('should use hashbang url with hash prefix', function() { @@ -532,8 +532,8 @@ describe('$location', function() {    // html5 history enabled and supported by browser    describe('history on new browser', function() { -    afterEach(inject(function($document){ -      dealoc($document); +    afterEach(inject(function($rootElement){ +      dealoc($rootElement);      }));      it('should use new url', function() { @@ -681,7 +681,6 @@ describe('$location', function() {      function configureService(linkHref, html5Mode, supportHist, attrs, content) {        module(function($provide, $locationProvider) { -        var jqRoot = jqLite('<div></div>');          attrs = attrs ? ' ' + attrs + ' ' : '';          // fake the base behavior @@ -692,14 +691,16 @@ describe('$location', function() {          }          link = jqLite('<a href="' + linkHref + '"' + attrs + '>' + content + '</a>')[0]; -        root = jqRoot.append(link)[0]; -        jqLite(document.body).append(jqRoot); - -        $provide.value('$document', jqRoot);          $provide.value('$sniffer', {history: supportHist});          $locationProvider.html5Mode(html5Mode);          $locationProvider.hashPrefix('!'); +        return function($rootElement, $document) { +          $rootElement.append(link); +          root = $rootElement[0]; +          // we need to do this otherwise we can't simulate events +          $document.find('body').append($rootElement); +        };        });      } @@ -711,11 +712,11 @@ describe('$location', function() {      }      function initLocation() { -      return function($browser, $location, $document) { +      return function($browser, $location, $rootElement) {          originalBrowser = $browser.url();          // we have to prevent the default operation, as we need to test absolute links (http://...)          // and navigating to these links would kill jstd -        $document.bind('click', function(e) { +        $rootElement.bind('click', function(e) {            lastEventPreventDefault = e.isDefaultPrevented();            e.preventDefault();          }); | 
