diff --git a/lib/app/js/directives/shadowDom.js b/lib/app/js/directives/shadowDom.js index 88aea9a0..8c730611 100644 --- a/lib/app/js/directives/shadowDom.js +++ b/lib/app/js/directives/shadowDom.js @@ -9,17 +9,26 @@ angular.module('sgApp') restrict: 'E', transclude: true, link: function(scope, element, attrs, controller, transclude) { - if (typeof element[0].createShadowRoot === 'function' && !Styleguide.config.data.disableEncapsulation) { - var root = angular.element(element[0].createShadowRoot()); - root.append($templateCache.get(USER_STYLES_TEMPLATE)); - transclude(function(clone) { - root.append(clone); - }); - } else { - transclude(function(clone) { - element.append(clone); - }); - } + + scope.$watch(function() { + return Styleguide.config; + }, function() { + if (typeof element[0].createShadowRoot === 'function' && (Styleguide.config && Styleguide.config.data && !Styleguide.config.data.disableEncapsulation)) { + angular.element(element[0]).empty(); + var root = angular.element(element[0].createShadowRoot()); + root.append($templateCache.get(USER_STYLES_TEMPLATE)); + transclude(function(clone) { + root.append(clone); + }); + } else { + transclude(function(clone) { + var root = angular.element(element[0]); + root.empty(); + root.append(clone); + }); + } + }, true); + } }; });