[Angular 8取消路线,当

问题描述 投票:1回答:1

我有一个路线的场景

<a routerLink="/crisis-center" routerLinkActive="active">Crisis Center</a>

在控制器中,我想基于某个值取消溃败导航。

export class HeroListComponent implements OnInit {
 cancelRoute : boolean = true

  constructor(
   //some logic where before the route is navigated to, I want it to cancel the route
   // and log a message to console
   //console.log('successfully, canceled route');
  ) {}

EDIT

我不希望通过Route Guard完成此操作,我希望在组件级别完成此操作。我的页面上有一个组件,我想取消路线导航。

这是我的用例。

我有一个包含多个组件的页面,如果有人离开了该页面,我想使用组件A进行检查,并确保在导航之前没有任何未保存的数据。

编辑2

“我不希望通过Route Guard完成此操作”。为什么?本质上,这就是CanDeactivate保护的作用。您绝对可以轻松地将其用于您的用例。

纠正我,如果我错了,但是例如,我需要在每条路线上都放CanDeactivateGuard

RouterModule.forRoot([
  {
    path: 'team/:id',
    component: TeamComponent,
    canDeactivate: ['canDeactivateTeam']
  }

当只有1条路线时,我不想在每条路线上都设置CanDeactivatefoo需要此。

[有很多路线,只有路线foo需要确保组件A可以取消路线导航。据我所知,canDeactivate路由gaurd无法访问在路由上创建的组件。

angular typescript
1个回答
-1
投票

[Lo que puedes hacer esto:

© www.soinside.com 2019 - 2024. All rights reserved.