Using DOM API directly is also a bad practice in angular, don’t recommend that. I also don’t recommend resolving to jQuery, there’s nothing you can’t do that jQuery can.
Andy Perlitch, the use-cases you mentioned can be summed up to 1 use-case which is called Overlays. This is already implemented in several angular 2 projects natively. I implemented it in my modal library (angular2-modal) and it’s also in material2 and ng-bootstrap. It does not require the compiler, only the ComponentResolverFactory which is not related to the compiler and works with AOT.