According to the docs for $digest ( http://docs.angularjs.org/api/ng . $ RootScope.Scope), this will only handle observers, etc. for current and its children.
This tells me that when you set scope = $rootScope and then $digest you will handle observers, etc. on $rootScope , I think promises will also be allowed here, releasing your templates. When you do scope = $rootScope.$new() and call $digest , I expect that nothing that should come from $rootScope will happen.
So this works if you change scope.$digest() to $rootScope.$digest() or scope.$apply() ?
source share