我有一个路线的场景
<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无法访问在路由上创建的组件。
[Lo que puedes hacer esto: