From 67fc5a6d4365cc87ef7a07766594cae9431f1086 Mon Sep 17 00:00:00 2001 From: Hannu Pelkonen Date: Mon, 30 Mar 2015 13:04:18 +0300 Subject: [PATCH] Fix fullscreen mode when using disableEncapsulation option --- lib/app/js/directives/shadowDom.js | 31 +++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) 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); + } }; });