目前我已将$ routeProvider.otherwise配置为转到登录后面的页面,如果该页面无法解析,则会转到登录屏幕。当XHR失败意味着将用户重定向到成功页面时,我想要另外重定向到错误页面。我发现如果我在routeChangeError上注册一个侦听器以重定向到/ error而不是默认值,则会覆盖.otherwise,并且所有输入错误的链接都会将用户带到错误页面。角度是否提供允许这样做的任何东西?或许我在代码中遗漏了一些东西?如果angular不能提供它,我可以写它,但我只是想知道框架是否有本机特性。
$rootScope.$on("$routeChangeError", function () {
$location.path("/login")
})
app.config(['$routeProvider', function ($routeProvider, $route) {
$routeProvider.
when('/error', {
templateUrl: 'error.html',
controller: 'Error',
controllerAs: 'error'
}).
when('/status-info', {
templateUrl: 'status-page.html',
controller: 'StatusInfoController',
resolve: {
auth: function (SessionService) {
return SessionService.resolve()
}
}
}).
when('/', {
redirectTo: '/status-info'
}).
otherwise({
redirectTo: '/'
})
所需的结果是一个网站以通常的方式响应不正确的网址 - 如果未经过身份验证,则默认为登录或登录后的特定网页,但为拒绝$route.resolve()
设置特殊错误页面会更加麻烦的承诺。
我很想为你写一个plunkr,但我今晚无法达到它。我们本周末推出测试版!如果你能把我指向正确的方向,我不一定需要代码。你能提供的任何帮助都会很棒。