angular - 检查更改是否正确但取消时出错
问题描述
我创建了一个 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]},
...
解决方案
推荐阅读
- python - 如何修复 FiPy 上的无休止计算?
- macos - 即使在调整权限后运行“mvn clean install”时反复出现“无法从...复制完整内容”
- ag-grid - ag-grid 的 agSelectCellEditor 无法正确渲染单元格
- javascript - Bootbox alert doesn't show up in Laravel view
- android - 如何从 SoapObject 中删除属性?
- javascript - 从列选项获取调用表
- python - 使用脚本参数在 Snakemake 中指定 Python 版本
- sql - 表上的选择性删除权限可能吗?
- ruby - rails:查找外键日期在一定范围内的模型对象
- python - 对象没有附加到文件 python 的属性“writerow”