javascript - Marker click event not firing for ui-gmap-marker in Map Controller -
i have app controller google map. click event not fire when run on phone. however, click event fires when test on ripple emulator. below map page , corresponding controller.
<ons-toolbar> <div class="left"><ons-back-button>back</ons-back-button></div> <div class="center page-title">map mapcontroller2</div> </ons-toolbar> <ui-gmap-google-map center="map.center" refresh="true" zoom="map.zoom" draggable="true"> <ui-gmap-marker idkey="marker.id" ng-repeat="marker in map.markers" coords="marker" icon="marker.icon" click="onmarkerclicked()"> <ui-gmap-window show="windowoptions" coords="marker" closeclick="closeclick"> <div style="color: black"> {{marker.title}}<br/> @ {{marker}} </div> </ui-gmap-window> </ui-gmap-marker> </ui-gmap-google-map> // map controller app.controller('mapcontroller2', function($scope, $rootscope, $http) { var data = {}; data.map = { zoom: 12, center: { latitude: 27.949, longitude: -81.958 }, markers: [ { id: 1, icon: 'img/blue_marker.png', latitude: 27.949, longitude: -81.999, title: 'this asdf;lkj asdf;lj ;asdf;lkasf; ;jasdfpoiarwtonmsad' }, { id: 2, latitude: 27.949, longitude: -81.958, title: 'job site' }, { id: 3, icon: 'img/plane.png', latitude: 27.949, longitude: -81.94, title: 'airport' }] }; $scope.windowoptions = false; $scope.onmarkerclicked = function () { this.windowoptions = !this.windowoptions; }; $scope.closeclick = function () { this.windowoptions = false; }; $scope.map = data.map; });
i found solution after lot on digging. html using below. using “ui-gmap-markers” (with “s”) instead of “ui-gmap-marker”. also, had encapsulate google map ’data-tap-disabled=”true”’ work on phone.
<ons-page class="map" ng-controller="mapcontroller2" sliding-menu-ignore="true"> <ons-toolbar> <div class="left"><ons-back-button>back</ons-back-button></div> <div class="center page-title">map mapcontroller</div> </ons-toolbar> <ui-gmap-google-map center="map.center" refresh="true" zoom="map.zoom" draggable="true" data-tap-disabled="true"> <ui-gmap-window show="map.window.show" coords="map.window.model" options="map.window.options" closeclick="map.window.closeclick()"> <div style="color: black"> {{map.window.title}} </div> </ui-gmap-window> <ui-gmap-markers idkey="marker.id" models="map.markers" coords="'self'" docluster="false" fit="'true'" icon="'icon'" events="map.markersevents " options="'options'"></ui-gmap-markers> </ui-gmap-google-map> </ons-page> and controller looks this:
// map controller app.controller('mapcontroller2', function($scope, $rootscope, $http) { var data = {}; data.map = { zoom: 12, center: { latitude: 27.949, longitude: -81.958 }, markers: [ { id: 1, icon: 'img/blue_marker.png', latitude: 27.949, longitude: -81.999, title: 'this are' }, { id: 2, latitude: 27.949, longitude: -81.958, title: 'job site' }, { id: 3, icon: 'img/plane.png', latitude: 27.949, longitude: -81.94, title: 'airport' }], markersevents: { click: function(marker, eventname, model, arguments) { console.log('marker clicked (' + marker + ', ' + eventname);//+', '+mydump(model, 0)+', '+mydump(arguments)+')'); $scope.map.window.model = model; $scope.map.window.model = model; $scope.map.window.title = model.title; $scope.map.window.show = true; } }, window: { marker: {}, show: false, closeclick: function() { this.show = false; }, options: {}, // define when map ready title: '' } }; //$scope.window = false; $scope.onmarkerclicked = function (m) { //this.windowoptions = !this.windowoptions; console.log('marker clicked'); console.log(m); }; $scope.closeclick = function () { this.window = false; }; $scope.map = data.map; });
Comments
Post a Comment