2013-09-11 2 views
0

У меня возникла проблема: мне нужно загрузить модуль в угловую.оболочку, а не перед ней, но угловой сохраняет ее, прежде чем я скажу, чтобы загрузить ее.AngularJS .bootstrap() и модули

Здесь я вызываю метод angular.boostrap, эта функция вызывается в качестве обратного вызова GMaps апи, так что я знаю, что это работает из-за console.log

function onGoogleReady() { 
    console.log("GMaps api initialized."); 
    angular.bootstrap(document.getElementById('map', ['app.ui.map'])); 
} 

и это мой модуль :

angular.module('myAppModule', ['ui.map']) 
.controller('CtrlGMap', ['$scope', function($scope) { 
    $scope.mapOptions = { 
     center: new google.maps.LatLng(35.500, -78.500), 
     zoom: 11, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
}]); 

и, наконец, мое приложение HTML

<html ng-app="myAppModule"> 

<section id="map"> 
    <div ui-map="myMap" ui-options="mapOptions" class="map-canvas"></div> 
</section> 

ответ

2

директива ng-app бутстрэпами приложения. Если вы хотите загрузить его вручную, вы не должны использовать ng-app. angular.bootstrap также принимает корень модуль для загрузки; в этом случае это ваш модуль myAppModule (который уже зависит от ui.map из-за определения angular.module). Таким образом, ваш код будет выглядеть следующим образом:

function onGoogleReady() { 
    console.log("GMaps api initialized."); 
    var body = document.getElementsByTagName('body')[0]; 
    angular.bootstrap(body, ['myAppModule']) 
} 
Смежные вопросы