Entendendo o bootstrap manual manual passo a passo do angularJS

Eu estava analisando o básico do angularJS sobre como ele é inicializado manualmente. Me deparei com uma abordagem diferente e encontreiessa abordagem estar melhor equipado.

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

Indo mais longe, me depareidesta outra maneira que quebra o básico. Eu comentei o código de acordo com meu entendimento, mas alguém pode me explicar com mais detalhes sobre como as coisas estão funcionando?

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();
}

Além disso, sinta-se à vontade para me esclarecer mais sobre esse assunto, sugerindo mais maneiras e melhorias.

questionAnswers(1)

yourAnswerToTheQuestion