首页 > 解决方案 > 检查更改是否正确但取消时出错

问题描述

我创建了一个 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]}, 
...

标签: angularangular7

解决方案


推荐阅读