This question, among many others, shows to use a controller-level resolve for async data that needs to be loaded before an application is started.
I have a lot of controllers, with all separately defined routes in each module... using resolve would be ridiculous to me if they all depend on the data. I also have directives which depend on the data (auto-complete search, etc).
Isn't there a better way to do: "load data (using an angular service) before each controller is shown"? I need the application to load, async fetch the data, and I use ng-show with some rootScope data that either shows loading or the controller template. I tried putting it in app.run, but couldn't get it to work properly...anything asynchronous in that block seems to wonk up the application.
Help?