Wie warten, bis Angular Google Maps getGMap an das Steuerobjekt angehängt hat
Ich habe versucht, Klickereignis-Listener auf dem @ einzurichtegoogle.maps.Map
Objekt, das vom @ erstellt wurui-gmap-google-map
Direktive von derAngular Google Maps-Bibliothek.
Ich muss dies dynamisch tun, also scheint es (zumindest durch meine kurzen Tests), dass mit derevents
Parameter auf demui-gmap-google-map
Direktive wird nicht funktionieren (weil es den Parameterwert nur einmal zu "lesen" scheint, aber vielleicht irre ich mich dabei).
So habe ich mich für das @ entschiedcontrol
Parameter, der das durch den Parameterwert benannte Objekt mit den Methoden @ erweitegetGMap
undrefresh
. So sieht die Verwendung meiner Direktive aus:
<ui-gmap-google-map center="appCtrl.mapSetup.center"
zoom="appCtrl.mapSetup.zoom"
control="appCtrl.mapSetup">
</ui-gmap-google-map>
Schließlich lade ich die Google Maps-API asynchron und verlasse mich auf dasGoogleMapApi
service / versprechen (Teil von Angular Google Maps) zu wissen, wann ich mit dem @ sicher umgehen kagoogle.maps.Map
object (z. B. Hinzufügen von Ereignis-Listenern usw.). Hier ist ein kleines Beispiel, wie das aussieht:
// inside the AppController constructor, see the fiddle linked below
var mapSetup = this.mapSetup;
GoogleMapApi.then(function () {
google.maps.event.addListener(mapSetup.getGMap(), 'click', function () {
alert('hello');
});
So wenn die Seite geladen wird hier ist die Geige) Erhalte ich "TypeError: undefined ist keine Funktion", weil dasmapSetup
Objekt wurde nicht mit @ erweitegetGMap
oderrefresh
. Es scheint so, als hätte es so sein sollen, basierend auf meinem Verständnis der Dokumentation.
Ich habe das @ eingewickeaddListener
anruf mit$timeout
(der Angular-Dienst) mit ein paar hundert Millisekunden Verzögerung, und dann hat es funktioniert, weil diemapSetup
Objekt war zu diesem Zeitpunkt mit @ erweitert wordgetGMap
.
Gibt es eine Möglichkeit, die Verwendung von @ zu vermeide$timeout
mit einer willkürlichen Verzögerung warten, bis dascontrol
-spezifiziertes Objekt ist tatsächlich erweitert?