diff options
| -rw-r--r-- | src/bootstrap/bootstrap-prettify.js | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/bootstrap/bootstrap-prettify.js b/src/bootstrap/bootstrap-prettify.js index 026587a2..406995e0 100644 --- a/src/bootstrap/bootstrap-prettify.js +++ b/src/bootstrap/bootstrap-prettify.js @@ -183,7 +183,9 @@ directive.ngEmbedApp = ['$templateCache', '$browser', '$rootScope', '$location', return { terminal: true, link: function(scope, element, attrs) { - var modules = []; + var modules = [], + embedRootScope, + deregisterEmbedRootScope; modules.push(['$provide', function($provide) { $provide.value('$templateCache', $templateCache); @@ -209,10 +211,12 @@ directive.ngEmbedApp = ['$templateCache', '$browser', '$rootScope', '$location', } }, $delegate); }]); - $provide.decorator('$rootScope', ['$delegate', function(embedRootScope) { - docsRootScope.$watch(function embedRootScopeDigestWatch() { + $provide.decorator('$rootScope', ['$delegate', function($delegate) { + embedRootScope = $delegate; + deregisterEmbedRootScope = docsRootScope.$watch(function embedRootScopeDigestWatch() { embedRootScope.$digest(); }); + return embedRootScope; }]); }]); @@ -223,6 +227,12 @@ directive.ngEmbedApp = ['$templateCache', '$browser', '$rootScope', '$location', event.preventDefault(); } }); + + element.bind('$destroy', function() { + deregisterEmbedRootScope(); + embedRootScope.$destroy(); + }); + angular.bootstrap(element, modules); } }; |
