当我缩小/混淆/ uglify我的代码时,我的httpInterceptor
不再有效了。
我收到以下错误:
Error: error:unpr
Unknown Provider
Unknown provider: aProvider <- a
删除了所有不相关内容的代码:
angular.module("MyApp").factory('sessionChecker', ['$q', '$injector',
function ($q, $injector) {
var sessionRecoverer = {
responseError: function (response) {
// Session has expired
if (response.status === 401) {
var $location = $injector.get('$location');
var $modal = $injector.get('$modal');
$location.path("/login");
} else if (response.status === 500) {
var $location = $injector.get('$location');
//Do stuff..
} else if (response.status === 0) {
var $modal = $injector.get('$modal');
//Do stuff..
}
return $q.reject(response);
}
};
return sessionRecoverer;
}]);
angular.module("MyApp").config(['$httpProvider',
function ($httpProvider) {
$httpProvider.interceptors.push('sessionChecker');
}]);
我如何正确地注入我的依赖项,或者我错过了什么?这样做很好,而不会缩小我的代码。
任何帮助都将不胜感激。
答案 0 :(得分:2)
您确定这段代码是否会产生错误? (这段代码看起来还不错......)但是这个错误肯定是由于没有使用['dep1', dep2', function(dep1,dep2){...}]
语法(或等同于$inject
)引起的。
您可以尝试严格的DI模式,以便Angular将在非 - 模式(ref here)中报告错误:
<div ng-app="myApp" ng-strict-di>
或(如果手动引导):
angular.bootstrap(document, ['myApp'], {
strictDi: true
});