1

我正在努力做到这一点,以便我可以将“requestCounter”添加到任何控制器并获得一个随着请求数量不断更新的值。拦截器代码正在工作,但是注入 requestCounter 提供的值始终是{count: 0}. 我不明白什么!

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>
4

1 回答 1

0

一开始,您将 activeRequests = 0 的原始值分配给您的 obj,因此它们彼此没有链接。您可以尝试:

var activeRequests = {number: 0};
var obj = {count: activeRequests};

然后你可以在 obj.count.number 中有你的计数

于 2014-02-12T20:42:19.210 回答