From 567754829848e8682d22db9d82f80dbd43783950 Mon Sep 17 00:00:00 2001 From: Victor Woeltjen Date: Wed, 28 Oct 2015 15:32:50 -0700 Subject: [PATCH] [Representation] Show element synchronously ...to avoid exceptions when trying to invoke representers before an mct-representation has been added back into the DOM. --- platform/representation/src/TemplateLinker.js | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/platform/representation/src/TemplateLinker.js b/platform/representation/src/TemplateLinker.js index 0c5e76cca7..fd5ba57a3c 100644 --- a/platform/representation/src/TemplateLinker.js +++ b/platform/representation/src/TemplateLinker.js @@ -73,10 +73,15 @@ define( } } - function replaceElement(template) { - activeElement.replaceWith(element); - activeElement = element; - activeElement.empty(); + function addElement() { + if (activeElement !== element) { + activeElement.replaceWith(element); + activeElement = element; + activeElement.empty(); + } + } + + function populateElement(template) { template(scope, function (innerClone) { element.append(innerClone); }); @@ -84,7 +89,7 @@ define( function applyTemplate(template) { if (template) { - replaceElement(template); + populateElement(template); } else { removeElement(); } @@ -93,6 +98,7 @@ define( function changeTemplate(templateUrl) { if (templateUrl !== activeTemplateUrl) { if (templateUrl) { + addElement(); self.load(templateUrl).then(applyTemplate); } else { removeElement();