在加载ng-view模板失败时显示错误页面

Show error page on failure to load ng-view template

本文关键字:显示 错误 失败 加载 ng-view      更新时间:2023-09-26

我希望能够显示一个标准的错误页面或模板,如果一个模板不能使用ngRoute加载。

我读到订阅$routeChangeError可以帮助,但不确定从这里去哪里。

$rootScope.$on("$routeChangeError", function (event, current, previous, rejection){
    // somehow tell the routing engine to load my error page (404 or 500 or something)
});

同样,这可以全局完成还是必须在每个控制器的基础上完成。目前我的网站还不是完全的SPA,当我慢慢地将网站从jQuery转换到Angular时,它有SPA/路由的"孤岛"。

当遇到错误时,您可能希望重定向用户。如使用您的代码:

$rootScope.$on("$routeChangeError", function (event, current, previous, rejection){
    $location.url('/error');
});

然后在$routeProvider(可能是$stateProvider,取决于你使用的是什么)中,做如下操作

$routeProvider
    .when('/error', {
        templateUrl: 'error.html',
        controller: 'YourErrorController'
    })