Spec-Zone.ru › Angular

NavigationBehaviorOptions

Параметры, изменяющие стратегию навигации Router. Передайте объект с любыми из этих свойств в функцию навигации Router, чтобы управлять обработкой навигации.

Router#navigateRouter#navigateByUrlРуководство по маршрутизации и навигации

API

interface NavigationBehaviorOptions {
  onSameUrlNavigation?: OnSameUrlNavigation | undefined;
  skipLocationChange?: boolean | undefined;
  replaceUrl?: boolean | undefined;
  state?: { [k: string]: any; } | undefined;
  readonly info?: unknown;
  readonly browserUrl?: string | UrlTree | undefined;
  readonly scroll?: "manual" | "after-transition" | undefined;
}

onSameUrlNavigation

OnSameUrlNavigation | undefined

Как обрабатывать запрос навигации к текущему URL.

Это значение является подмножеством параметров, доступных в OnSameUrlNavigation, и имеет приоритет над значением по умолчанию, заданным для Router.

skipLocationChange

boolean | undefined

Если значение равно true, навигация выполняется без добавления нового состояния в историю.

// Navigate silently to /view
this.router.navigate(['/view'], { skipLocationChange: true });

replaceUrl

boolean | undefined

Если значение равно true, навигация выполняется с заменой текущего состояния в истории.

// Navigate to /view
this.router.navigate(['/view'], { replaceUrl: true });

state

{ [k: string]: any; } | undefined

Определяемое разработчиком состояние, которое можно передать при любой навигации. Получить это значение можно через объект Navigation.extras, возвращаемый методом Router.currentNavigation() во время выполнения навигации.

После завершения навигации маршрутизатор записывает объект, содержащий это значение и navigationId, в history.state. Значение записывается, если перед активацией этого маршрута вызывается location.go() или location.replaceState().

Обратите внимание, что history.state не проходит проверку на равенство объектов, поскольку при каждой навигации маршрутизатор добавляет navigationId.

info

unknown

Используйте это свойство, чтобы передать временную информацию о конкретной навигации, например о том, как она произошла. В этом оно отличается от сохраняемого значения state, которое будет задано для history.state. Этот объект напрямую присваивается текущему объекту Navigation маршрутизатора (он не копируется и не клонируется), поэтому изменять его следует с осторожностью.

Например, это свойство можно использовать для запуска разных анимаций навигации в одностраничном приложении в зависимости от того, как был открыт определённый маршрут. Рассмотрим приложение-галерею фотографий, в котором к одному и тому же URL фотографии и состоянию можно перейти разными способами:

  • Щёлкнуть по фотографии в режиме просмотра галереи
  • Щёлкнуть
  • «следующая» или «предыдущая» при просмотре другой фотографии в альбоме
  • И т. д.

При навигации для каждого из этих способов нужна своя анимация. Эту информацию не имеет смысла сохранять в URL или состоянии записи истории, но её важно передать из остальной части приложения в маршрутизатор.

Эту информацию можно использовать совместно с функцией View Transitions и обратным вызовом onViewTransitionCreated. В обратном вызове эту информацию можно использовать для добавления классов к документу, чтобы управлять анимацией перехода, а после её завершения удалить эти классы.

browserUrl

string | UrlTree | undefined

Если задано это свойство, маршрутизатор обновит адресную строку браузера, указав в ней переданный UrlTree вместо URL, используемого для сопоставления маршрута.

scroll

"manual" | "after-transition" | undefined

Настраивает обработку прокрутки для отдельной навигации, если в маршрутизаторе включено восстановление прокрутки.

  • При значении 'manual' маршрутизатор не будет выполнять прокрутку после завершения навигации, даже если восстановление прокрутки включено.
  • При значении 'after-transition' прокрутка будет выполнена после события NavigationEnd в соответствии с поведением, настроенным в функции прокрутки маршрутизатора.

Super-powered by Google ©2010–2025.
Code licensed under an MIT-style License. Documentation licensed under CC BY 4.0.
https://angular.dev/api/router/NavigationBehaviorOptions

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API