MCPcopy Index your code
hub / github.com/angular-ui/ui-grid / compileTemplateUrl

Function compileTemplateUrl

lib/test/angular/1.4.3/angular.js:8290–8402  ·  view source on GitHub ↗
(directives, $compileNode, tAttrs,
        $rootElement, childTranscludeFn, preLinkFns, postLinkFns, previousCompileContext)

Source from the content-addressed store, hash-verified

8288
8289
8290 function compileTemplateUrl(directives, $compileNode, tAttrs,
8291 $rootElement, childTranscludeFn, preLinkFns, postLinkFns, previousCompileContext) {
8292 var linkQueue = [],
8293 afterTemplateNodeLinkFn,
8294 afterTemplateChildLinkFn,
8295 beforeTemplateCompileNode = $compileNode[0],
8296 origAsyncDirective = directives.shift(),
8297 derivedSyncDirective = inherit(origAsyncDirective, {
8298 templateUrl: null, transclude: null, replace: null, $$originalDirective: origAsyncDirective
8299 }),
8300 templateUrl = (isFunction(origAsyncDirective.templateUrl))
8301 ? origAsyncDirective.templateUrl($compileNode, tAttrs)
8302 : origAsyncDirective.templateUrl,
8303 templateNamespace = origAsyncDirective.templateNamespace;
8304
8305 $compileNode.empty();
8306
8307 $templateRequest(templateUrl)
8308 .then(function(content) {
8309 var compileNode, tempTemplateAttrs, $template, childBoundTranscludeFn;
8310
8311 content = denormalizeTemplate(content);
8312
8313 if (origAsyncDirective.replace) {
8314 if (jqLiteIsTextNode(content)) {
8315 $template = [];
8316 } else {
8317 $template = removeComments(wrapTemplate(templateNamespace, trim(content)));
8318 }
8319 compileNode = $template[0];
8320
8321 if ($template.length != 1 || compileNode.nodeType !== NODE_TYPE_ELEMENT) {
8322 throw $compileMinErr('tplrt',
8323 "Template for directive '{0}' must have exactly one root element. {1}",
8324 origAsyncDirective.name, templateUrl);
8325 }
8326
8327 tempTemplateAttrs = {$attr: {}};
8328 replaceWith($rootElement, $compileNode, compileNode);
8329 var templateDirectives = collectDirectives(compileNode, [], tempTemplateAttrs);
8330
8331 if (isObject(origAsyncDirective.scope)) {
8332 markDirectivesAsIsolate(templateDirectives);
8333 }
8334 directives = templateDirectives.concat(directives);
8335 mergeTemplateAttributes(tAttrs, tempTemplateAttrs);
8336 } else {
8337 compileNode = beforeTemplateCompileNode;
8338 $compileNode.html(content);
8339 }
8340
8341 directives.unshift(derivedSyncDirective);
8342
8343 afterTemplateNodeLinkFn = applyDirectivesToNode(directives, compileNode, tAttrs,
8344 childTranscludeFn, $compileNode, origAsyncDirective, preLinkFns, postLinkFns,
8345 previousCompileContext);
8346 forEach($rootElement, function(node, i) {
8347 if (node == compileNode) {

Callers 1

applyDirectivesToNodeFunction · 0.70

Calls 15

markDirectivesAsIsolateFunction · 0.85
inheritFunction · 0.70
isFunctionFunction · 0.70
jqLiteIsTextNodeFunction · 0.70
removeCommentsFunction · 0.70
wrapTemplateFunction · 0.70
trimFunction · 0.70
replaceWithFunction · 0.70
collectDirectivesFunction · 0.70
isObjectFunction · 0.70
mergeTemplateAttributesFunction · 0.70
applyDirectivesToNodeFunction · 0.70

Tested by

no test coverage detected