我正在使用angular 2.0稳定版,并且想要在离开页面之前要求用户确认(他们的更改不会被保存)。
问题是如果用户希望访问延迟加载的页面,则实现“CanDeactivate”防护两次。 (使用哈希定位策略)
重现的步骤:
app.routing.ts
{ path: 'task1', component: Task1Component, canDeactivate: ['candeactivate'] },
应用程序/任务-1 / task1.module.ts
@NgModule({
imports: [CommonModule],
declarations: [Task1Component],
exports: [Task1Component],
providers: [
{
provide: 'candeactivate',
useValue: () => {
console.log("can deactivate");
return confirm("Test");
}
}
]
})
export class Task1Module {}
请注意,系统会要求您两次确认。我找到了https://github.com/angular/angular/issues/11754,但现在没有任何解决方案。
有没有解决方法呢?