Spec-Zone.ru › Angular

CanDeactivateFn

Сигнатура функции, используемой в качестве guard canDeactivate для Route.

МаршрутCanDeactivate

API

type CanDeactivateFn<T> = (
  component: T,
  currentRoute: ActivatedRouteSnapshot,
  currentState: RouterStateSnapshot,
  nextState: RouterStateSnapshot,
) => MaybeAsync<GuardResult>

Описание

Сигнатура функции, используемой в качестве guard canDeactivate для Route.

Если все guards возвращают true, навигация продолжается. Если хотя бы один guard возвращает false, навигация отменяется. Если хотя бы один guard возвращает UrlTree, текущая навигация отменяется и начинается новая навигация к UrlTree, возвращённому guard.

В следующем примере реализуется и используется CanDeactivateFn, который проверяет, есть ли у компонента пользователя несохранённые изменения, прежде чем перейти с этого маршрута.

@Component({
  template: '',
})
export class UserComponent {
  hasUnsavedChanges = true;
}

bootstrapApplication(App, {
  providers: [
    provideRouter([
      {
        path: 'user/:id',
        component: UserComponent,
        canDeactivate: [(component: UserComponent) => !component.hasUnsavedChanges],
      },
    ]),
  ],
});

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/CanDeactivateFn

Spec-Zone.ru

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