Angular doesn't have a mechanism like React for reusing an existing DOM, so what happens is that the client rebuilds the DOM and often there's a brief blink/flash when this transition happens. Hence, Preboot.
In addition to the core requirement of pushstate URLs, here are additional notes/guidelines for Angular users (will update as time goes on):
These versions should "just work" with Preboot. Without preboot, you'll see a brief blink/flash.
ng-view
or ui-view
templatesng-app
must be on a <div />
within the <body />
tag<body>
<div prerendercloud-preboot-app-root ng-app>
<div ng-view></div>
<!-- ui-view also works -->
</div>
</body>
<html ng-app>
<body>
<div prerendercloud-preboot-app-root ng-view>
</div>
</body>
</html>
prerendercloud-preboot-app-root
must be on the ng-app
(app root)ng-app
must be on a <div />
within <body />
since Preboot clones the ng-app
DOM node, and you can't clone a <html />
or <body />
DOM node.