Comprensión paso a paso manual de arranque de angularJS

Estaba revisando los conceptos básicos de angularJS sobre cómo se inicia manualmente. Encontré un enfoque diferente y encontréEste enfoque para estar mejor equipado.

angular.element(document).ready(function(){
   angular.bootstrap(document,['myapp'])
})

Avanzando, me encontréesta otra forma que lo rompe a lo básico. He comentado el código según mi entendimiento, pero ¿alguien puede explicarme más detalles sobre cómo funcionan las cosas bajo el capó?

window.onload = function (){

  var $rootElement = angular.element(window.document);
  var modules = [
    'ng',       // angular module
    'myApp',    // custom module
    // what are we trying to achieve here?
    function($provide){ 
        $provide.value('$rootElement',$rootElement)
    }
  ];

  var $injector = angular.injector(modules);      // one injector per application
  var $compile = $injector.get('$compile');       // Compile Service: it traverses the DOM and look for directives and  compile and return linking function. No accecess to scope
  var compositeLinkFn = $compile($rootElement);   // collection of all linking function. Here scope is getting accessed

  var $rootScope = $injector.get('$rootScope');   // Hold of the rootscope
  compositeLinkFn($rootScope);

  $rootScope.$apply();
}

Además, siéntase libre de aclararme más sobre este tema sugiriendo más formas y mejoras.

Respuestas a la pregunta(1)

Su respuesta a la pregunta