module.exports = function($http, $templateCache, $compile) { var cache = {} return function(src, scope, cloneAttachFn) { var compileFn = cache[src] if (compileFn) { compileFn(scope, cloneAttachFn) } else { $http.get(src, {cache: $templateCache}).success(function(response) { var responseContents = angular.element('
').html(response).contents() compileFn = cache[src] = $compile(responseContents) compileFn(scope, cloneAttachFn) }) } } }