Javascript AngularJS:如何实现全局错误处理程序并显示错误

Javascript AngularJS:如何实现全局错误处理程序并显示错误,javascript,angularjs,error-handling,Javascript,Angularjs,Error Handling,对于我的网页,我有几个angular应用程序。对于这些应用程序,我想创建一个全局错误处理程序,用于跟踪代码为500、401等的错误,并将其显示为警报 以下是我到目前为止的情况: 我已经创建了一个全局错误处理程序模块,然后将其注入到我的应用程序中 angular.module('globalErrorHandlerModule', []) .factory('myHttpInterceptor', ['$rootScope', '$q', function ($rootScope, $q)

对于我的网页,我有几个angular应用程序。对于这些应用程序,我想创建一个全局错误处理程序,用于跟踪代码为500、401等的错误,并将其显示为警报

以下是我到目前为止的情况:

我已经创建了一个全局错误处理程序模块,然后将其注入到我的应用程序中

angular.module('globalErrorHandlerModule', [])
    .factory('myHttpInterceptor', ['$rootScope', '$q', function ($rootScope, $q) {
        return {
            'responseError': function (rejection) {
                if(rejection.status == 500){
                    // show error
                }

                return $q.reject(rejection);
            }
        };
    }])
    .config(function ($httpProvider) {
        $httpProvider.interceptors.push('myHttpInterceptor');
    });

angular.module('myApp', ['globalErrorHandlerModule'])
现在我正在努力解决的是在警报中显示错误。最好的方法是什么?我曾尝试创建一个单独的错误应用程序,注入错误模块,并在两者之间共享一个数据工厂,但应用程序中的数据从未更新。大概是这样的:

angular.module('globalErrorHandlerModule', [])
    .factory('myHttpInterceptor', ['$rootScope', '$q', 'Data', function ($rootScope, $q, Data) {
        return {
            'responseError': function (rejection) {
                if(rejection.status == 500){
                    // set error
                    Data.error.message = '500 error';
                }

                return $q.reject(rejection);
            }
        };
    }])
    .factory('Data', function () {
        var _error = {
            message: "init"
        };
        return {
            error: _error
        };
    })
    .config(function ($httpProvider) {
        $httpProvider.interceptors.push('myHttpInterceptor');
    });

angular.module('globalErrorHandlerApp', ['globalErrorHandlerModule'])
    .controller('GlobalErrorCtrl', function ($scope, Data) {
        $scope.test = Data.error.message;
    });
然后显示错误,如下所示:

<div ng-controller="GlobalErrorCtrl">
         Error {{test}}    
</div>
但是如前所述,我只看到我的初始值,没有更新错误消息。我也试过广播,但也没用。我确信有更好的方法来实现这样的东西,我只是还没有找到。谢谢你给我指点方向。

试试这个

angular.module('globalErrorHandlerApp', ['globalErrorHandlerModule'])
.controller('GlobalErrorCtrl', function ($scope, Data) {
    $scope.test = Data.error;
});
看一个物体比看一根绳子好。 如果需要帮助,请告诉我

<div ng-controller="GlobalErrorCtrl">
     Error <span> {{test.message}}   </span>  
</div>