Я раздвоенный директиву uiMap AngularUI для того, чтобы обменять InfoWindow для Infobox и добавить MarkerClusters. Я сделал некоторые обширные обновления для uiMap -> icMap; в частности, я переместил директивную логику из контроллеров, сделав uiMap директивой «master»). У меня почти все работает, за исключением того, что щелчок на встроенном MapMarker не открывает инфобокс.AngularJS: обратный вызов события не срабатывает на Google Maps родного маркера карты
Я думаю причина в том, что я не правильно связывать событие щелчка на родном MapMarker (IC-map.js: 163).
Перед тем, как реорганизовать uiMap, я просто добавил icMapInfoBox
директиву в map.js. Его открытого было зарегистрировано событие/инициируется:
ui-event="{'map-click':'openMarkerInfo(marker)'}"
, который называется openMarkerInfo() определен в контроллере (копировать/вставить из моего репозитория: GitHub Gist).
Однако теперь, когда я нажимаю на собственный MapMarker, ничего не происходит, и я не получаю никаких ошибок в консоли (но все остальные события все равно срабатывают должным образом).
Оригинальные Plunk
упрощенный Plunk (снято MarkerClusters)
В обоих plunks, проблема, вероятно, лежит в IC-map.js (первый файл в списке)
map.json представляет собой файл данных
angular.js, angular-ui.js, и infobox.js являются Lib файлы
Редактировать я заметил, что InfoBox.map
является undefined
; Я предполагаю, что это имеет какое-то отношение к проблеме.
Редактировать Неопределенное InfoBox.map собственность была частью проблемы: руководство вызов InfoBox.open на IC-map.js: 189 работ (шаблон не компилируется, но это другая проблема), но событие click по-прежнему не вызывает InfoBox.open. Также шаблон не включается.
SOLVED: Я обрабатывал объект DOM вместо объекта js . Скоро опубликует решение.
Предоставьте jsFiddle все файлы. – tschiela
@tschiela, я уже предоставил Plunkr со всеми файлами (он связан в нижней части вопроса). Сегодня Plunkr выглядит немного медленнее, поэтому загрузка занимает несколько секунд. – jacob
О, извините, я поскользнулся с этой ссылкой. thx – tschiela