缩小 httpInterceptor AngularJS $injector 错误
Minifying httpInterceptor AngularJS $injector error
当我 minify/obfuscate/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');
}]);
我如何正确地注入我的依赖项,或者我是否遗漏了什么?这在不缩小我的代码的情况下工作正常。
如有任何帮助,我们将不胜感激。
您确定是这段代码产生了错误吗? (这段代码对我来说看起来不错......)但是这个错误肯定是由于没有使用 ['dep1', dep2', function(dep1,dep2){...}]
语法(或等效于 $inject
)引起的。
你可以试试strict DI模式,这样Angular在非-minified模式(ref here)下会报错:
<div ng-app="myApp" ng-strict-di>
或者(如果手动引导):
angular.bootstrap(document, ['myApp'], {
strictDi: true
});
当我 minify/obfuscate/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');
}]);
我如何正确地注入我的依赖项,或者我是否遗漏了什么?这在不缩小我的代码的情况下工作正常。
如有任何帮助,我们将不胜感激。
您确定是这段代码产生了错误吗? (这段代码对我来说看起来不错......)但是这个错误肯定是由于没有使用 ['dep1', dep2', function(dep1,dep2){...}]
语法(或等效于 $inject
)引起的。
你可以试试strict DI模式,这样Angular在非-minified模式(ref here)下会报错:
<div ng-app="myApp" ng-strict-di>
或者(如果手动引导):
angular.bootstrap(document, ['myApp'], {
strictDi: true
});