【问题标题】:How to handle angular-ui-router and template loading errors?如何处理 angular-ui-router 和模板加载错误?
【发布时间】:2015-10-29 23:43:09
【问题描述】:
使用 angular-ui-router,我有类似的东西:
.state('page', {
url: '/page',
templateUrl: '/page.html'
})
此模板 URL 可能会返回“401 Unauthorized”。当路由器尝试加载 url 并处理它时,是否可以处理 http 响应,以便我可以显示一些消息或重定向用户?
【问题讨论】:
标签:
angularjs
angular-ui-router
【解决方案1】:
您可以为您的应用程序注册一个拦截器。这个拦截器的实现
$httpProvider.responseInterceptors.push([
'$q',
'$location',
'$rootScope',
(function($q, $location, $rootScope) {
return {
responseError: function(response) {
if (response.status === 401) {
console.log(response.status + ' intercepted');
$location.path('/unauthorized/');
$q.reject(response);
}
return response;
}
};
});
]
在此之后,您需要使用自定义页面模板在您的州注册 /unauthorized。