aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/bootstrap/bootstrap-prettify.js16
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);
}
};