code: 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;
    }];
  }
docs: @ngdoc service
  @name $templateRequest
  
  @description
  The `$templateRequest` service downloads the provided template using `$http` and, upon success,
  stores the contents inside of `$templateCache`. If the HTTP request fails or the response data
  of the HTTP request is empty, a `$compile` error will be thrown (the exception can be thwarted
  by setting the 2nd parameter of the function to true).
  
  @param {string} tpl The HTTP request template URL
  @param {boolean=} ignoreRequestError Whether or not to ignore the exception when the request fails or the template is empty
  
  @return {Promise} the HTTP Promise for the given.
  
  @property {number} totalPendingRequests total amount of pending template requests being downloaded.