在我的角度应用程序中,我正在寻找一种方法来处理所有服务器响应错误(带有显示错误消息的弹出框),但允许控制器选择退出此行为并在调用 $ 时根据需要进行自己的错误处理资源。
我打算只使用一个拦截器并让它处理所有错误。就像是
$httpProvider.interceptors.push(function($q) {
return {
'responseError': function(rejection) {
displayMessage(rejection);
return $q.reject(rejection);
}
};
});
然后从控制器,如果我打电话
$scope.widget = WidgetResource.get();
并且服务器以 401 错误响应,用户将看到一条错误消息,说明他们没有被授权。
但我突然想到,有时控制器可能希望自己处理错误响应(即,在给定上下文中显示错误的更好方法)。它可以选择退出拦截器正在做什么的方式是什么?
或者,也许拦截器不是解决这个问题的方法。我还能用什么来处理这种交叉问题并允许选择退出?