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

最初に、objにactiveRequests = 0のプリミティブ値を割り当てているため、それらは互いにリンクされていません。あなたは試すことができます:

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

次に、数えた数を obj.count.number に入れることができます

于 2014-02-12T20:42:19.210 に答える