Как ждать, пока Angular Google Maps добавит getGMap к объекту управления

Я пытался настроить прослушиватели событий клика наgoogle.maps.Map объект, который созданui-gmap-google-map директива отБиблиотека угловых карт Google.

Мне нужно сделать это динамически, поэтому (по крайней мере, после моего краткого тестирования), что использованиеevents параметр наui-gmap-google-map директива не будет работать (потому что она, кажется, «читает» значение параметра только один раз, но, возможно, я ошибаюсь в этом).

Поэтому я решил использоватьcontrol параметр, который дополняет объект, названный значением параметра, методамиgetGMap а такжеrefresh, Вот как выглядит использование моей директивы:

<ui-gmap-google-map center="appCtrl.mapSetup.center"
                    zoom="appCtrl.mapSetup.zoom"
                    control="appCtrl.mapSetup">
</ui-gmap-google-map>

Наконец, я загружаю API Карт Google асинхронно и полагаюсь наGoogleMapApi&nbsp;сервис / обещание (часть Angular Google Maps), чтобы знать, когда я смогу безопасно начать работу сgoogle.maps.Map&nbsp;объект (например, добавление прослушивателей событий и т. д.). Вот небольшой пример того, как это выглядит:

// 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');
    });

Поэтому, когда страница загружена (вот скрипка), Я получаю «TypeError: undefined не является функцией», потому чтоmapSetup&nbsp;объект не был дополненgetGMap&nbsp;или жеrefresh, Похоже, что так должно было быть, основываясь на моем понимании документации.

Я завернулaddListener&nbsp;позвонить с$timeout&nbsp;(служба Angular), использующая задержку в несколько сотен миллисекунд, а затем она работала, потому чтоmapSetup&nbsp;объект был к тому времени дополненgetGMap.

Есть ли способ избежать необходимости использовать$timeout&nbsp;с произвольной задержкой ждать, покаcontrolобъект на самом деле дополнен?