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

Popular posts from this blog

node.js - Using Node without global install -

How to access a php class file from PHPFox framework into javascript code written in simple HTML file? -

java - Null response to php query in android, even though php works properly -