From 249c89c0911254873c68cd753d903ea5606344ac Mon Sep 17 00:00:00 2001 From: Vojta Jina Date: Thu, 12 Jan 2012 02:29:26 -0800 Subject: fix($autoScroll): scroll even if $location is in html5 mode + use autoscroll in docs (ng:include)--- docs/src/templates/index.html | 6 ++---- src/service/autoScroll.js | 15 ++++++--------- test/service/autoScrollSpec.js | 4 ++-- 3 files changed, 10 insertions(+), 15 deletions(-) diff --git a/docs/src/templates/index.html b/docs/src/templates/index.html index 9054f095..6d93a2ad 100644 --- a/docs/src/templates/index.html +++ b/docs/src/templates/index.html @@ -117,10 +117,8 @@

- +
diff --git a/src/service/autoScroll.js b/src/service/autoScroll.js index 7b5b28e4..223400f4 100644 --- a/src/service/autoScroll.js +++ b/src/service/autoScroll.js @@ -10,9 +10,7 @@ * according to rules specified in * {@link http://dev.w3.org/html5/spec/Overview.html#the-indicated-part-of-the-document Html5 spec}. * - * If `$location` uses `hashbang` url (running in `hashbang` mode or `html5` mode on browser without - * history API support), `$autoScroll` watches the `$location.hash()` and scroll whenever it - * changes. + * It also watches the `$location.hash()` and scroll whenever it changes to match any anchor. * * You can disable `$autoScroll` service by calling `disable()` on `$autoScrollProvider`. * Note: disabling is only possible before the service is instantiated ! @@ -54,12 +52,11 @@ function $AutoScrollProvider() { else if (hash === 'top') $window.scrollTo(0, 0); } - // scroll whenever hash changes (with hashbang url, regular urls are handled by browser) - if ($location instanceof LocationHashbangUrl) { - $rootScope.$watch(function() {return $location.hash();}, function() { - $rootScope.$evalAsync(scroll); - }); - } + // does not scroll when user clicks on anchor link that is currently on + // (no url change, no $locaiton.hash() change), browser native does scroll + $rootScope.$watch(function() {return $location.hash();}, function() { + $rootScope.$evalAsync(scroll); + }); return scroll; }]; diff --git a/test/service/autoScrollSpec.js b/test/service/autoScrollSpec.js index 86a47f50..4f4dd0e2 100644 --- a/test/service/autoScrollSpec.js +++ b/test/service/autoScrollSpec.js @@ -169,12 +169,12 @@ describe('$autoScroll', function() { }); - it('should not scroll when html5 mode with history api', function() { + it('should scroll when html5 mode with history api', function() { module(initLocation({html5Mode: true, historyApi: true})); inject( addElements('id=some'), changeHashAndDigest('some'), - expectNoScrolling() + expectScrollingTo('id=some') ); }); -- cgit v1.2.3