我创建了一个canDeactivate防护措施,以检查在更改路线之前是否更改了表单数据。可以,并显示消息,但是当我单击“取消”按钮时出现此错误。
其中“ / admin / evento / fotos / amigos” 是用户单击“确定”按钮后将走的路线。
表单已更改防护
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]},
...