我通过注入$ http来覆盖$ exceptionHandler。我这样做是因为我向服务器记录了一个恐怖。
Module.factory('$exceptionHandler', ['$http', function ($http) {
"use strict";
//code
}
但是我也有一个拦截器来添加我的$ httpProvider:
Module.config(['$httpProvider', function($httpProvider) {
$httpProvider.interceptors.push('special-http');
}]);
这是拦截器(我在工厂里包装):
Module.factory('special-http', ['$templateCache', function($templateCache) {
"use strict";
return {
'request': function(config) {
if ($templateCache.get(config.url)){
return config;
}
//some logic
return config;
}
}
}]);
EDIT_的 _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ ____
修复'$ http'的名称后
我现在收到此错误:
Uncaught Error: [$injector:cdep] Circular dependency found: $http <- $exceptionHandler <- $rootScope
http://errors.angularjs.org/1.2.1/$injector/cdep?p0=%24http%20%3C-%20%24exceptionHandler%20%3C-%20%24rootScope
答案 0 :(得分:5)
您可以注入$injector
以便稍后获取$http
:
Module.factory('$exceptionHandler', ['$injector', function ($injector) {
"use strict";
return function (exception, cause) {
var $http = $injector.get('$http');
// code
};
}
请参阅this fiddle