To effectively address this issue, I have discovered that the most successful approach is to keep all angular-related logic out of your index file except for ng-app and <ui-view></ui-view>
(or ngView, though ui-router is highly recommended). Then configure your routes to display the designated template with all your desired ng-functionalities. By the time the template is displayed, angular will be up and running, precompiling all templates before they are shown.
If your application is very straightforward and using a router seems excessive, you can opt for the ngInclude directive instead.
The only drawback remaining is having a completely blank page until angular kicks in. To tackle this, consider using require.js to manage this process and showcase a sleek page loading
widget while waiting for angular to take over.