Javascript 从Angular JS中的模块更新范围变量

Javascript 从Angular JS中的模块更新范围变量,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,我学习了以下模块: var mod; mod = angular.module('ajax-interceptor', []); mod.config(function($httpProvider) { $httpProvider.interceptors.push(["$q", function($q, dependency1, dependency2) { return { 'request': function(config) {

我学习了以下模块:

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);
            }
        };
    }]);
});

每当发出请求时,我想更新一个范围变量。我该怎么做?我无法在配置块中插入
$scope
。我将使用此变量跟踪用户的活动,就像用户在10分钟内未请求用户将被强制注销一样。

您可以向模块中添加工厂并跟踪其中的用户活动:

mod.factory("factoryName", [
    function(){
        var factory = {};
        factory.track = function(userActivity){
            // Save user activity
        };

        return factory;
    }
]);
然后必须将工厂注入$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;
        }
    };
}]);