Not sure if this will at all come in handy, seems to me if the controller doesn't run it just won't show things. More of a starting point than anything else - without further ado, adding a $resolve function on a controller and have it resolve prior to controller initialization.
angular.module('resolve', [])
.directive('resolveController', [
'$controller', '$parse', '$injector', '$window',
function($controller, $parse, $injector, $window) {
return {
link: function(scope, elem, attrs) {
var ctrlName = attrs.resolveController;