diff options
| author | Vojta Jina | 2012-01-12 02:29:26 -0800 |
|---|---|---|
| committer | Vojta Jina | 2012-01-13 01:01:26 -0800 |
| commit | 249c89c0911254873c68cd753d903ea5606344ac (patch) | |
| tree | ee89b4d54ce20eabcaad625debbc0b282afdee74 | |
| parent | 5164ae545b10723b4e9ec454f436f6698dc93e24 (diff) | |
| download | angular.js-249c89c0911254873c68cd753d903ea5606344ac.tar.bz2 | |
fix($autoScroll): scroll even if $location is in html5 mode
+ use autoscroll in docs (ng:include)
| -rw-r--r-- | docs/src/templates/index.html | 6 | ||||
| -rw-r--r-- | src/service/autoScroll.js | 15 | ||||
| -rw-r--r-- | 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 @@ <div class="content-panel"> <h2 ng:bind="partialTitle | title"></h2> - <ng:include id="content" - class="content-panel-content" - src="getCurrentPartial()" - onload="afterPartialLoaded()"></ng:include> + <ng:include id="content" class="content-panel-content" autoscroll + src="getCurrentPartial()" onload="afterPartialLoaded()"></ng:include> </div> <div id="disqus" class="content-panel"> 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') ); }); |
