Carga dinámica de módulos AngularJS desde plantillas (vistas)

Fondo: Supongamos, por el bien del argumento, que tiene 100.000 vistas (parciales). Supongamos también que tiene controladores de vista de acompañamiento, y servicios y filtros potencialmente de vista también. Intente imaginar una aplicación agregada que aloje 100,000 aplicaciones pequeñas dispares.

Problema: Cuando tienes "parciales" que requieren controladores de acompañamiento, la solución típica es hacer algo como esto:

$routeProvider.when('/app1', {
        templateUrl: 'partials/view1.html',
        controller: 'controller1'
    });

El controlador se carga normalmente desde index.html a través de:

<script src="js/directives/Controller1.js"></script>

El problema con este enfoque es que no se escala. Existen soluciones para cargar controladores de forma dinámica, pero aún requieren la adición de puntos de contacto en diversas configuraciones.

Solución ideal: Idealmente, una vez más para aplicaciones muy pequeñas cuyos números están en 000, el controlador podría cargarse dinámicamente, y desde dentro del mismo parcial. Esto aliviaría la necesidad de administrar varios archivos y varios puntos de contacto de configuración (sin mencionar las solicitudes de red), y mantendría cada parte muy bien contenida.

Se vería algo como esto:

En el enrutador:

$routeProvider.when('/apps/:appId', {
        templateUrl: 'partials/app-frame.html',
        controller: 'AppCtrl'
    });

Al contener html (app-frame) incluye la "mini aplicación" relativamente dispar:

<h1>Currently hosting {{appId}}</h1><hr>
<div class="ng-include: appUrl"></div>

En parcial resuelto con appUrl, definir controladory marcado en uno:

<script>
  myApp.controller('controller1', ['$scope', function ($scope) {
    $scope.foo = "bar";
  }]);
</script>


<div ng-controller="controller1">
     {{foo}}
</div>

Para casos como este, donde hay una gran cantidad de parciales y un mapeo 1-1 para controlador y vista, puede tener sentido unir los dos para eficiencias de desarrollo y mantenimiento. Es mucho más limpio que usar varios archivos y puntos de contacto de configuración adicionales.

El problema es que esto no funciona. Podría ser tan simple como obligar a cargar el script antes de aplicar la directiva ... ¿pero no está seguro de cómo hacerlo?

Aquí hay algunas explicaciones similares del problema:

https://groups.google.com/forum/#!topic/angular/H4haaMePJU0

Cargando página parcial con angular y compilar el controlador

Igor del equipo de AngularJS dice:

I see.. we looked into supporting script tags in jqlite, but what needs to be done to get a cross-browser support involves a lot of black magic. For this reason we decided that for now we are just going to recommend that users use jquery along with angular in this particular case. It doesn't make sense for us to rewrite one third of jquery to get this working in jqlite.

Pero no sé qué quiere decir con "use jquery" ...JQuery ya está cargado en la aplicación de index.html (y antes de angularjs), pero suena como que necesito hacer algo específicamente dentro del mismo parcial.

Respuestas a la pregunta(1)

Su respuesta a la pregunta