我创建了一个 canDeactivate 守卫来检查表单数据是否在路由更改之前更改。没关系,并且显示了消息,但是当我单击取消按钮时,出现此错误。
其中“/admin/evento/fotos/amigos”是用户点击 Ok 按钮时所走的路线。
形式变了后卫
export interface FormChangedCanDeactivate {
canDeactivate: () => Observable<boolean> | Promise<boolean> | boolean;
}
@Injectable()
export class FormChangedGuard implements CanDeactivate<FormChangedCanDeactivate>{
canDeactivate(component: FormChangedCanDeactivate) {
return component.canDeactivate();
}
}
组件方法
...
canDeactivate(): Promise<boolean> | boolean {
return this.form.dirty ? confirm(this.mensagemSairSemSalvar) : true;
}
...
路由器配置
...
{path: 'fotos', component: EventoFotosComponent, canActivate: [UsuarioGuard], canDeactivate: [FormChangedGuard]},
...