2014-12-26 1 views
5

Angular documentation says that ng-app value (module name) is optional. Но не описывает поведение углов, когда нет имени модуля? Итак, как угловой выбрать корневой модуль?Когда ng-app не установлен на имя модуля, как угловой выбрать корневой/основной модуль?

Создает ли он общий модуль и вводит в него все доступные модули?

ответ

3

будет ng и нет, он не будет вводить другие модули. Взгляните на angular source code for function bootstrap. Поэтому, когда угловая загрузка и документ готов, будет вызываться angularInit, чтобы найти элемент с ng-app и модулем, а затем позвонить bootstrap. если модуль не определен, вы можете обратиться к логике ниже: ng не переключается в массив модулей как модуль по умолчанию.

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

Спасибо, поэтому он использует только ng, поэтому все остальные модули, определенные в JavaScript, игнорируются правильно? – redben

+0

есть. и вы можете проверить 'ng' на' angular.module ('ng') ' – elaijuh

+0

@redben - mate, если это немного помогает, можете ли вы PLS повышать/принять его, спасибо – elaijuh

Смежные вопросы