AngularJS:routeChangeError与$ routeProvider.otherwise不同?

时间:2016-05-12 18:10:09

标签: angularjs redirect error-handling routes

目前我已将$ 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,但我今晚无法达到它。我们本周末推出测试版!如果你能把我指向正确的方向,我不一定需要代码。你能提供的任何帮助都会很棒。

0 个答案:

没有答案