Spec-Zone.ru › Angular

NavigationExtras

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

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

API

interface NavigationExtras extends UrlCreationOptions, NavigationBehaviorOptions {
  override relativeTo?: ActivatedRoute | null | undefined;
  override queryParams?: Params | null | undefined;
  override fragment?: string | undefined;
  override queryParamsHandling?: QueryParamsHandling | null | undefined;
  override preserveFragment?: boolean | undefined;
  override onSameUrlNavigation?: OnSameUrlNavigation | undefined;
  override skipLocationChange?: boolean | undefined;
  override replaceUrl?: boolean | undefined;
  override state?: { [k: string]: any; } | undefined;
  readonly override info?: unknown;
  readonly override browserUrl?: string | UrlTree | undefined;
  readonly override scroll?: "manual" | "after-transition" | undefined;
}

relativeTo

ActivatedRoute | null | undefined

Задает корневой URI, используемый для относительной навигации.

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

[{
  path: 'parent',
  component: ParentComponent,
  children: [{
    path: 'list',
    component: ListComponent
  },{
    path: 'child',
    component: ChildComponent
  }]
}]

Следующая функция go() выполняет навигацию к маршруту list, интерпретируя URI назначения как относительный к активированному маршруту child

 @Component({...})
 class ChildComponent {
   constructor(private router: Router, private route: ActivatedRoute) {}

   go() {
     router.navigate(['../list'], { relativeTo: this.route });
   }
 }

Значение null или undefined указывает, что команды навигации следует применять относительно корня.

queryParams

Params | null | undefined

Задает параметры запроса для URL.

// Navigate to /results?page=1
router.navigate(['/results'], { queryParams: { page: 1 } });

fragment

string | undefined

Задает фрагмент хеша для URL.

// Navigate to /results#top
router.navigate(['/results'], { fragment: 'top' });

queryParamsHandling

QueryParamsHandling | null | undefined

Способ обработки параметров запроса в ссылке маршрутизатора при следующей навигации. Возможны варианты:

  • preserve : Сохранить текущие параметры.
  • merge : Объединить новые параметры с текущими.

Вариант "preserve" отбрасывает все новые параметры запроса:

// from /view1?page=1 to/view2?page=1
router.navigate(['/view2'], { queryParams: { page: 2 },  queryParamsHandling: "preserve"
});

Вариант "merge" добавляет новые параметры запроса к параметрам из текущего URL:

// from /view1?page=1 to/view2?page=1&otherKey=2
router.navigate(['/view2'], { queryParams: { otherKey: 2 },  queryParamsHandling: "merge"
});

При совпадении ключа среди текущих параметров и параметров объекта queryParams используется новое значение.

preserveFragment

boolean | undefined

Если значение равно true, фрагмент URL сохраняется при следующей навигации

// Preserve fragment from /results#top to /view#top
router.navigate(['/view'], { preserveFragment: true });

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() method во время выполнения навигации.

После завершения навигации маршрутизатор записывает в history.state объект, содержащий это значение вместе с navigationId. Значение записывается, если перед активацией этого маршрута вызывается 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/NavigationExtras

Spec-Zone.ru

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