我有以下模块:
var mod;
mod = angular.module('ajax-interceptor', []);
mod.config(function($httpProvider) {
$httpProvider.interceptors.push(["$q", function($q, dependency1, dependency2) {
return {
'request': function(config) {
//want to update a scope variable when a request is placed
return config;
},
'requestError': function(rejection) {
return $q.reject(rejection);
},
'response': function(response) {
return response;
},
'responseError': function(rejection) {
return $q.reject(rejection);
}
};
}]);
});
我想在每次发出请求时更新作用域变量。我怎样才能做到这一点?我无法在配置 block 中注入(inject) $scope
。我将使用此变量来跟踪用户的事件,例如用户 10 分钟内没有请求,用户将被强制注销。
最佳答案
您可以向模块添加工厂并跟踪其中的用户事件:
mod.factory("factoryName", [
function(){
var factory = {};
factory.track = function(userActivity){
// Save user activity
};
return factory;
}
]);
然后您必须将工厂注入(inject) $httpProvider 并使用它:
$httpProvider.interceptors.push(["$q", "factoryName", function($q, factoryName, dependency1, dependency2) {
return {
'request': function(config) {
//want to update a scope variable when a request is placed
factoryName.track(userActivity);
return config;
}
};
}]);
关于javascript - 从 Angular JS 中的模块更新作用域变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33409471/