docs: function $TemplateRequestProvider() {
    this.$get = ['$templateCache', '$http', '$q', function($templateCache, $http, $q) {
      function handleRequestFn(tpl, ignoreRequestError) {
        handleRequestFn.totalPendingRequests++;
  
        var transformResponse = $http.defaults && $http.defaults.transformResponse;
  
        if (isArray(transformResponse)) {
          transformResponse = transformResponse.filter(function(transformer) {
            return transformer !== defaultHttpResponseTransform;
          });
        } else if (transformResponse === defaultHttpResponseTransform) {
          transformResponse = null;
        }
  
        var httpOptions = {
          cache: $templateCache,
          transformResponse: transformResponse
        };
  
        return $http.get(tpl, httpOptions)
          ['finally'](function() {
            handleRequestFn.totalPendingRequests--;
          })
          .then(function(response) {
            return response.data;
          }, handleError);
  
        function handleError(resp) {
          if (!ignoreRequestError) {
            throw $compileMinErr('tpload', 'Failed to load template: {0}', tpl);
          }
          return $q.reject(resp);
        }
      }
  
      handleRequestFn.totalPendingRequests = 0;
  
      return handleRequestFn;
    }];
  }