ExtraOptions
interface
A set of configuration options for a router module, provided in the forRoot()
method.
interface ExtraOptions { enableTracing?: boolean useHash?: boolean initialNavigation?: InitialNavigation errorHandler?: ErrorHandler preloadingStrategy?: any onSameUrlNavigation?: 'reload' | 'ignore' scrollPositionRestoration?: 'disabled' | 'enabled' | 'top' anchorScrolling?: 'disabled' | 'enabled' scrollOffset?: [number, number] | (() => [number, number]) paramsInheritanceStrategy?: 'emptyOnly' | 'always' malformedUriErrorHandler?: (error: URIError, urlSerializer: UrlSerializer, url: string) => UrlTree urlUpdateStrategy?: 'deferred' | 'eager' relativeLinkResolution?: 'legacy' | 'corrected' }
Properties
Property | Description |
---|---|
enableTracing?: boolean | When true, log all internal navigation events to the console. Use for debugging. |
useHash?: boolean | When true, enable the location strategy that uses the URL fragment instead of the history API. |
initialNavigation?: InitialNavigation | One of Legacy values are deprecated since v4 and should not be used for new applications:
|
errorHandler?: ErrorHandler | A custom error handler for failed navigations. |
preloadingStrategy?: any | Configures a preloading strategy. One of |
onSameUrlNavigation?: 'reload' | 'ignore' | Define what the router should do if it receives a navigation request to the current URL. Default is |
scrollPositionRestoration?: 'disabled' | 'enabled' | 'top' | Configures if the scroll position needs to be restored when navigating back.
You can implement custom scroll restoration behavior by adapting the enabled behavior as in the following example. class AppModule { constructor(router: Router, viewportScroller: ViewportScroller) { router.events.pipe( filter((e: Event): e is Scroll => e instanceof Scroll) ).subscribe(e => { if (e.position) { // backward navigation viewportScroller.scrollToPosition(e.position); } else if (e.anchor) { // anchor navigation viewportScroller.scrollToAnchor(e.anchor); } else { // forward navigation viewportScroller.scrollToPosition([0, 0]); } }); } } |
anchorScrolling?: 'disabled' | 'enabled' | When set to 'enabled', scrolls to the anchor element when the URL has a fragment. Anchor scrolling is disabled by default. Anchor scrolling does not happen on 'popstate'. Instead, we restore the position that we stored or scroll to the top. |
scrollOffset?: [number, number] | (() => [number, number]) | Configures the scroll offset the router will use when scrolling to an element. When given a tuple with x and y position value, the router uses that offset each time it scrolls. When given a function, the router invokes the function every time it restores scroll position. |
paramsInheritanceStrategy?: 'emptyOnly' | 'always' | Defines how the router merges parameters, data, and resolved data from parent to child routes. By default ('emptyOnly'), inherits parent parameters only for path-less or component-less routes. Set to 'always' to enable unconditional inheritance of parent parameters. |
malformedUriErrorHandler?: (error: URIError, urlSerializer: UrlSerializer, url: string) => UrlTree | A custom handler for malformed URI errors. The handler is invoked when
|
urlUpdateStrategy?: 'deferred' | 'eager' | Defines when the router updates the browser URL. By default ('deferred'), update after successful navigation. Set to 'eager' if prefer to update the URL at the beginning of navigation. Updating the URL early allows you to handle a failure of navigation by showing an error message with the URL that failed. |
relativeLinkResolution?: 'legacy' | 'corrected' | Enables a bug fix that corrects relative link resolution in components with empty paths. Example: const routes = [ { path: '', component: ContainerComponent, children: [ { path: 'a', component: AComponent }, { path: 'b', component: BComponent }, ] } ]; From the
However, this will work:
In other words, you're required to use |
© 2010–2020 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://v9.angular.io/api/router/ExtraOptions