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

Show error page on failure to load ng-view template

如果无法使用 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,它有 "silos" 的 SPA / 路由,因为我慢慢地将网站从 jQuery 转换为 Angular。

您可能希望在遇到错误时重定向您的用户。通过使用您的代码:

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

然后在您的 $routeProvider(可能是 $stateProvider,具体取决于您使用的是什么)中,执行如下操作

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