javascript - AngularJS: Event callback doesn't fire on google maps native map marker -


i've forked angularui's uimap directive in order swap infowindow infobox , add markerclusters. i've made extensive updates uimap -> icmap; notably moved directive logic out of controllers, making uimap "master" directive). i've got working, except clicking native mapmarker doesn't open infobox.

i think reason i'm not binding click event native mapmarker (ic-map.js:163).

before re-organised uimap had added icmapinfobox directive in map.js. open event registered/triggered by:

ui-event="{'map-click':'openmarkerinfo(marker)'}" 

which called openmarkerinfo() defined in controller (copy/paste repo: github gist).

however, when click native mapmarker, nothing happens , no errors in console (but other events still fire properly).

original plunk
simplified plunk (removed markerclusters)
in both plunks, problem lies in ic-map.js (first file in list)

map.json data file
angular.js, angular-ui.js, , infobox.js lib files

edit noticed infobox.map undefined; i'm guessing has problem.

edit undefined infobox.map property part of problem: manual call infobox.open on ic-map.js:189 works (template isn't being compiled, that's different problem), click event still doesn't trigger infobox.open. template not getting included.

solved: had been treating marker dom object instead of js object. post solution soon.

working example: http://plnkr.co/edit/mamx5exthxso4aqmszud

  1. original > ic-map.js:156 event listener should have been bound google.maps.event.addlistener() (see working example > ic-map.js:154-156).
  2. also, trouble use templates, added 2 divs children of div#map (see working example > index.html:41-42). due how inheritence , shared models work, of directives must on same dom element (because no-one can down, up). necessary moving directive logic out of controller (as implementation angularui). in implementation, model shared across icmaps* directives within directives (and directive controllers).
  3. difference of marker:
    • uimapmarker, marker attached dom object: ng-repeat="marker in markers"
    • icmapmarkers, marker js object.

Comments

Popular posts from this blog

c# - Send Image in Json : 400 Bad request -

jquery - Fancybox - apply a function to several elements -

An easy way to program an Android keyboard layout app -