【发布时间】:2015-04-28 13:26:51
【问题描述】:
我创建了一个$httpProvider 拦截器,就像here 描述的那样:
$httpProvider.interceptors.push(function ($q) {
return {
'responseError': function (response) {
var _status,
_message;
switch (response.status) {
case 403:
_status = 'warning';
_message = 'no rights to do this';
break;
case 500:
_status = 'danger';
_message = 'internal server error';
break;
}
Alert.add({status: _status, msg: _message});
return $q.reject(response);
}
};
});
Alert 是我熟悉的一项服务,用于显示通知、错误等。它依赖于$rootScope,只是添加了一个要在 html 中呈现的对象。
所以问题是:如何从定义此拦截器的app.config 调用我的Alert 服务?或者,如果不可能,我怎样才能在一个地方捕获所有 http 错误并显示它们?
【问题讨论】:
-
从 app.config 调用我的警报服务是什么意思?你想配置它吗?那么_如何在一个地方捕获所有http错误并显示它们_?这不就是这段代码应该做的吗?
-
好吧,为了显示错误,我想使用服务警报。而且这段代码显然不起作用,因为我无法从拦截器调用服务
-
你试过
function ($q, AlertService)吗? -
哇,愚蠢的我。这行得通!
-
@zeroflagL 我认为
function ($q, AlertService)行不通..
标签: javascript angularjs