2015-10-29 3 views
1

Я следующий модуль:Обновление области видимости переменных из модуля в угловых JS

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 минут, пользователь будет принудительно выведен из системы.

ответ

1

Вы можете добавить фабрику для модуля и следить за действиями пользователей в нем:

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; 
     } 
    }; 
}]); 
Смежные вопросы