尝试创建一个全局错误处理程序,它应该通过配置$ httpProvider添加拦截器来呈现错误模式。模态产生对服务的依赖。我无法注入配置块。 我尝试使用$ injector延迟加载服务,但不起作用。 你会如何解决它?
编辑刚找到的$ exceptionHandler,尝试一下。没有运气cirk dep:$ modal< - errorModalService< - $ exceptionHandler< - $ rootScope
答案 0 :(得分:4)
是的,AngularJS DI子系统确实很棘手,具有循环依赖性。不确定您尝试了什么以及哪些措施无效,但您始终可以从$injector
获得所需的依赖关系。从$http
拦截器执行此操作非常简单:
.factory('errInterceptor', function ($q, $injector) {
return {
responseError: function(response) {
$injector.get('$modal').open({
template: '<h4>$http error!</h4>',
});
}
}
})
这是一个有效的插件:http://plnkr.co/edit/n172IrR9259qi4qG0H3I?p=preview