首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angularjs -删除$routeChangeError之后的最后一个历史记录条目

Angularjs -删除$routeChangeError之后的最后一个历史记录条目
EN

Stack Overflow用户
提问于 2014-01-29 00:12:24
回答 1查看 3.3K关注 0票数 4

我有一个route,它必须resolve服务器端的资源。该资源要求进行身份验证。所以我显示了一个可以取消的登录表单弹出窗口。在取消路由/解析时,会正确触发rejected$routeChangeError

问题是,我现在在地址栏中有一个失败的位置/url和一个不必要的历史记录条目。

如何在不重新加载的情况下将当前位置url替换为最后一个?路由变更失败后,如何删除当前历史记录?

编辑:我使用angular-http-auth。下面是我的路由:

/home > /item (必须解析需要身份验证的资源,如果未登录登录表单,则会打开可取消的弹出窗口)

当我取消身份验证时,一个$routeChangeError被触发,而我仍然在/home页面上,因为/item从未呈现过。现在地址栏显示了一个错误的url:/item

EN

回答 1

Stack Overflow用户

发布于 2014-01-29 04:59:16

你只需要让他们回到你的历史中的一步。不要担心历史记录在那里,当他们导航到下一件事时,它会被覆盖:

代码语言:javascript
复制
app.run(function($rootScope, $window) {
   $rootScope.$on('$routeChangeError', function () {
      $window.history.back();
   });
});

And here's a demo Plunk

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

https://stackoverflow.com/questions/21410904

复制
相关文章

相似问题

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