我正在尝试在配置块中注入$ location和AppConstant(factory)值。
app.config(['RestangularProvider', function (RestangularProvider) {
RestangularProvider.setBaseUrl('/san/');
RestangularProvider.setErrorInterceptor(function (response, deferred, responseHandler) {
if (response.status > 400) {
//ERROR - can't inject
angular.injector().invoke(['AppConstant', '$location', function () {
AppConstant.redirectUrl = $location.path();
$location.path('/signin');
}]);
//
return false; // error handled
}
return true; // error not handled
});
}]);
但是我没有直接注入配置,我只是试图在某些功能范围的中间注入。
请帮我理解角度和javascript。
答案 0 :(得分:0)
根据文档,它说:
必须明确添加ng模块。
您正在使用它:angular.injector().invoke(...
但你应该像这样使用它:angular.injector(['ng']).invoke(...
这是典型用法:
var $injector = angular.injector(['ng']);
$injector.invoke(function($rootScope, $compile, $document) {
$compile($document)($rootScope);
$rootScope.$digest();
});
以下是docs