在角度2中,是否有更好的方法来控制浏览器返回。当单击“后退”时,显示“确认”对话框,如果确认重定向到页面X,则保持在相同的页面中。
使用location.onPopState(),我们不能完全控制浏览器返回,因为它最终会执行反向重定向。
上述行为是否可以通过canActivate的angular2路由来实现?
发布于 2017-02-10 16:05:15
你要找的WHat是canDeactivate警卫。维克多在他的书中这样描述:
canDeactivate警卫不同于其他警卫。它的主要目的不是检查权限,而是请求确认。为了说明这一点,让我们将应用程序更改为在用户以未保存的更改关闭撰写对话框时请求确认。
然后,他继续分享如何做一个SaveChanges警卫:
canDeactivate(component: ComposeCmp, route: ActivatedRouteSnapshot,
state: RouterStateSnapshot): Promise<boolean> {
if (component.unsavedChanges) {
return this.dialogs.unsavedChangesConfirmationDialog();
} else {
return Promise.resolve(true);
}
}我强烈建议买这本书。https://leanpub.com/router
https://stackoverflow.com/questions/42162639
复制相似问题