Я пытаюсь сделать так, чтобы я мог просто добавить «requestCounter» к любому контроллеру и получить значение, которое постоянно обновляется с количеством запросов. Код перехватчика работает, однако значение, предоставляемое инжектором requestCounter, всегда равно {count: 0}
. Что я не понимаю!Создание службы requestCounter в angularjs
angular.module('theApp')
.provider('requestCounter', function ($httpProvider) {
this.$get = function() {
var activeRequests = 0;
var obj = {count: activeRequests};
$httpProvider.defaults.transformRequest.push(function(data) {
activeRequests++;
return data;
});
$httpProvider.defaults.transformResponse.push(function(data) {
activeRequests--;
return data;
});
return obj;
};
});
контроллер
angular.module('theApp')
.controller('PurchaseCtrl', function ($scope, requestCounter) {
$scope.requests = requestCounter;
});
разметки
<h1>There are {{requests.count}} requests loading</h1>
Ahh, я понимаю, что я сделал неправильно. Мне просто нужно избавиться от 'activeRequests', потому что примитивы копируются по значению. 'var obj = {count: 0};', а затем в перехватчиках do 'obj.count ++' и 'obj.count -'. Спасибо! –