NavigationStart

class

Represents an event triggered when a navigation starts.

class NavigationStart extends RouterEvent {
  constructor(id: number, url: string, navigationTrigger: 'imperative' | 'popstate' | 'hashchange' = 'imperative', restoredState: {...})
  navigationTrigger?: 'imperative' | 'popstate' | 'hashchange'
  restoredState?: {...}
  toString(): string

  // inherited from router/RouterEvent
  constructor(id: number, url: string)
  id: number
  url: string
}

Constructor

constructor(id: number, url: string, navigationTrigger: 'imperative' | 'popstate' | 'hashchange' = 'imperative', restoredState: { navigationId: number; } | null = null)

Parameters

id

Type: number.

url

Type: string.

navigationTrigger

Type: 'imperative' | 'popstate' | 'hashchange'.

Optional. Default is 'imperative'.

restoredState

Type: { navigationId: number; } | null.

Optional. Default is null.

Properties

Property Description
navigationTrigger?: 'imperative' | 'popstate' | 'hashchange'

Identifies the trigger of the navigation.

  • 'imperative'--triggered by router.navigateByUrl or router.navigate.
  • 'popstate'--triggered by a popstate event
  • 'hashchange'--triggered by a hashchange event
restoredState?: { navigationId: number; } | null

This contains the navigation id that pushed the history record that the router navigates back to. This is not null only when the navigation is triggered by a popstate event.

The router assigns a navigationId to every router transition/navigation. Even when the user clicks on the back button in the browser, a new navigation id will be created. So from the perspective of the router, the router never "goes back". By using the restoredState and its navigationId, you can implement behavior that differentiates between creating new states and popstate events. In the latter case you can restore some remembered state (e.g., scroll position).

Methods

toString(): string

Parameters

There are no parameters.

Returns

string

© 2010–2019 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://v6.angular.io/api/router/NavigationStart