8

Używam http://angular-google-maps.org/ to ładne kanonowe biblioteki map Google. Ale chcę używać map instancji, który nie jest załadowany angularjs kontekście przez coś takiego:AngulaJS Map Google map instancji mapy

$scope.map = { 
events: { 
    tilesloaded: function (map) { 
      $scope.$apply(function() { 
       $scope.mapInstance = map;   
      }); 
     } 
    } 
} 

Ok miły Mam mapInstance i mogę go używać programowo. Ale w cyklu życiowym aplikacji ten ogień do końca - innymi słowy chcę załadować całą dyrektywę (i dostać instancję mapy) przed innym kodem - gdzie po prostu nie będę używał innych zdarzeń na mapie.

Odpowiedz

26

W niedawno patrząc sposobów, aby uzyskać instancję mapa z przykładu na stronie docs, natknąłem to zamiast:

$scope.map.control.getGMap(). 

Upewnij się na znacznikach google-mapy HTML, trzeba przypisać opcji ustaw jako control="map.control" i pusty obiekt ustawiony w twoim obiekcie $scope.map.

$scope.map= { control : {}, ...other map options...}; 

Puste obiekty są wypełniane po zainicjowaniu mapy google. Mam nadzieję, że to pomoże i nie jest za późno.

Ciesz się kątem!

+0

To jest dokładnie to, czego potrzebowałem .. dzięki! –

+0

Dzięki EdwinA :) – Angudroid

+0

Jak promisize ładowanie mapy, aby upewnić się, że nie próbujesz wcześniej renderować znaczników? – sgimeno