首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >控制浏览器返回角2

控制浏览器返回角2
EN

Stack Overflow用户
提问于 2017-02-10 15:10:17
回答 1查看 1.2K关注 0票数 1

在角度2中,是否有更好的方法来控制浏览器返回。当单击“后退”时,显示“确认”对话框,如果确认重定向到页面X,则保持在相同的页面中。

使用location.onPopState(),我们不能完全控制浏览器返回,因为它最终会执行反向重定向。

上述行为是否可以通过canActivate的angular2路由来实现?

EN

回答 1

Stack Overflow用户

发布于 2017-02-10 16:05:15

你要找的WHat是canDeactivate警卫。维克多在他的书中这样描述:

canDeactivate警卫不同于其他警卫。它的主要目的不是检查权限,而是请求确认。为了说明这一点,让我们将应用程序更改为在用户以未保存的更改关闭撰写对话框时请求确认。

然后,他继续分享如何做一个SaveChanges警卫:

代码语言:javascript
复制
   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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42162639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档