2014-12-26 8 views

risposta

3

sarà ng e no, non verrà iniettato altri moduli. Dai un'occhiata a angular source code for function bootstrap. Pertanto, quando viene caricato un angolo, e il documento è pronto, verrà invocato angularInit per trovare l'elemento con ng-app e il modulo, quindi chiamare bootstrap. se non è stato definito alcun modulo, è possibile fare riferimento alla seguente logica: ng non è spostato sull'array dei moduli come modulo predefinito.

function bootstrap(element, modules) { 
    var doBootstrap = function() { 
    element = jqLite(element); 

    if (element.injector()) { 
     var tag = (element[0] === document) ? 'document' : startingTag(element); 
     throw ngMinErr('btstrpd', "App Already Bootstrapped with this Element '{0}'", tag); 
    } 

    modules = modules || []; 
    modules.unshift(['$provide', function($provide) { 
     $provide.value('$rootElement', element); 
    }]); 
    modules.unshift('ng'); 
    var injector = createInjector(modules); 
    injector.invoke(['$rootScope', '$rootElement', '$compile', '$injector', '$animate', 
     function(scope, element, compile, injector, animate) { 
     scope.$apply(function() { 
      element.data('$injector', injector); 
      compile(element)(scope); 
     }); 
     }] 
    ); 
    return injector; 
    }; 
+0

Grazie, quindi utilizza solo ng, quindi tutti gli altri moduli definiti in JavaScript sono ignorati, giusto? – redben

+0

si. e puoi controllare 'ng' di' angular.module ('ng') ' – elaijuh

+0

@redben - mate, se questo ti aiuta un po ', potresti inversione/accettarlo, grazie – elaijuh

Problemi correlati