我有一个必须解析服务器端资源的路由.该资源要求进行身份验证.所以我显示了一个可取消的登录表单弹出窗口.取消时,路由/解析被拒绝,$routeChangeError正确触发.
问题是,我现在在地址栏中有一个失败的位置/网址和一个不必要的历史记录条目.
如何在不重新加载的情况下将当前位置URL替换为最后一个?如何在路由更改失败后删除当前的历史记录条目?
编辑:
我使用angular-http-auth.
这是我的路线:
/ home> / item(必须解析需要身份验证的资源,当未登录登录表单弹出窗口打开时可以取消)
当我取消身份验证时,$routeChangeError被触发,我仍然在/ home
由于/ item从未呈现的页面.现在地址栏显示错误的url:/ item
最佳答案 您只需要将它们发送回历史记录中的一步.不要担心历史记录在那里,当它们导航到下一件事时它将被覆盖:
app.run(function($rootScope, $window) {
$rootScope.$on('$routeChangeError', function () {
$window.history.back();
});
});