NavigationBehaviorOptions
Параметры, изменяющие стратегию навигации Router. Передайте объект с любыми из этих свойств в функцию навигации Router, чтобы управлять обработкой навигации.
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;
}
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