diff --git a/packages/router/src/router_scroller.ts b/packages/router/src/router_scroller.ts index 15a2393265b65..fa2821b5eeaf4 100644 --- a/packages/router/src/router_scroller.ts +++ b/packages/router/src/router_scroller.ts @@ -29,7 +29,11 @@ export class RouterScroller implements OnDestroy { /** @docsNotRequired */ public readonly viewportScroller: ViewportScroller, private options: { scrollPositionRestoration?: 'disabled' | 'enabled' | 'top', anchorScrolling?: 'disabled'|'enabled' - } = {}) {} + } = {}) { + // Default both options to 'disabled' + options.scrollPositionRestoration = options.scrollPositionRestoration || 'disabled'; + options.anchorScrolling = options.anchorScrolling || 'disabled'; + } init(): void { // we want to disable the automatic scrolling because having two places diff --git a/packages/router/test/router_scroller.spec.ts b/packages/router/test/router_scroller.spec.ts index b5565f65f2b1a..64caa839f83a0 100644 --- a/packages/router/test/router_scroller.spec.ts +++ b/packages/router/test/router_scroller.spec.ts @@ -15,6 +15,24 @@ import {Scroll} from '../src/events'; import {RouterScroller} from '../src/router_scroller'; describe('RouterScroller', () => { + it('defaults to disabled', () => { + const events = new Subject(); + const router = { + events, + parseUrl: (url: any) => new DefaultUrlSerializer().parse(url), + triggerEvent: (e: any) => events.next(e) + }; + + const viewportScroller = jasmine.createSpyObj( + 'viewportScroller', + ['getScrollPosition', 'scrollToPosition', 'scrollToAnchor', 'setHistoryScrollRestoration']); + setScroll(viewportScroller, 0, 0); + const scroller = new RouterScroller(router, router); + + expect((scroller as any).options.scrollPositionRestoration).toBe('disabled'); + expect((scroller as any).options.anchorScrolling).toBe('disabled'); + }); + describe('scroll to top', () => { it('should scroll to the top', () => { const {events, viewportScroller} =